godash-diagrams 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(qt,vt){typeof exports=="object"&&typeof module<"u"?vt(exports):typeof define=="function"&&define.amd?define(["exports"],vt):(qt=typeof globalThis<"u"?globalThis:qt||self,vt(qt.GodashDiagrams={}))})(this,(function(qt){"use strict";var vt="@@__IMMUTABLE_INDEXED__@@";function X(r){return!!(r&&r[vt])}var gr="@@__IMMUTABLE_KEYED__@@";function R(r){return!!(r&&r[gr])}function Ur(r){return R(r)||X(r)}var Ii="@@__IMMUTABLE_ITERABLE__@@";function F(r){return!!(r&&r[Ii])}var B=function(t){return F(t)?t:D(t)},V=(function(r){function t(e){return R(e)?e:mt(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t})(B),Mt=(function(r){function t(e){return X(e)?e:rt(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t})(B),Ct=(function(r){function t(e){return F(e)&&!Ur(e)?e:jt(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t})(B);B.Keyed=V,B.Indexed=Mt,B.Set=Ct;var $t=0,U=1,H=2,Hr=typeof Symbol=="function"&&Symbol.iterator,qi="@@iterator",mr=Hr||qi,S=function(t){this.next=t};S.prototype.toString=function(){return"[Iterator]"},S.KEYS=$t,S.VALUES=U,S.ENTRIES=H,S.prototype.inspect=S.prototype.toSource=function(){return this.toString()},S.prototype[mr]=function(){return this};function z(r,t,e,n){var i=r===$t?t:r===U?e:[t,e];return n?n.value=i:n={value:i,done:!1},n}function L(){return{value:void 0,done:!0}}function Mi(r){return Array.isArray(r)?!0:!!Sr(r)}function Oi(r){return!!(r&&typeof r.next=="function")}function Kr(r){var t=Sr(r);return t&&t.call(r)}function Sr(r){var t=r&&(Hr&&r[Hr]||r[qi]);if(typeof t=="function")return t}function ks(r){var t=Sr(r);return t&&t===r.entries}function Bs(r){var t=Sr(r);return t&&t===r.keys}var Xt="delete",M=5,K=1<<M,P=K-1,m={};function Wr(){return{value:!1}}function Z(r){r&&(r.value=!0)}function Gr(){}function kt(r){return r.size===void 0&&(r.size=r.__iterate(Ei)),r.size}function yt(r,t){if(typeof t!="number"){var e=t>>>0;if(""+e!==t||e===4294967295)return NaN;t=e}return t<0?kt(r)+t:t}function Ei(){return!0}function wr(r,t,e){return(r===0&&!Ri(r)||e!==void 0&&r<=-e)&&(t===void 0||e!==void 0&&t>=e)}function Vt(r,t){return Ti(r,t,0)}function br(r,t){return Ti(r,t,t)}function Ti(r,t,e){return r===void 0?e:Ri(r)?t===1/0?t:Math.max(0,t+r)|0:t===void 0||t===r?r:Math.min(t,r)|0}function Ri(r){return r<0||r===0&&1/r===-1/0}var zi="@@__IMMUTABLE_RECORD__@@";function Ot(r){return!!(r&&r[zi])}function nt(r){return F(r)||Ot(r)}var gt="@@__IMMUTABLE_ORDERED__@@";function it(r){return!!(r&&r[gt])}var Ai="@@__IMMUTABLE_SEQ__@@";function Yr(r){return!!(r&&r[Ai])}var Bt=Object.prototype.hasOwnProperty;function Ci(r){return Array.isArray(r)||typeof r=="string"?!0:r&&typeof r=="object"&&Number.isInteger(r.length)&&r.length>=0&&(r.length===0?Object.keys(r).length===1:r.hasOwnProperty(r.length-1))}var D=(function(r){function t(e){return e==null?Xr():nt(e)?e.toSeq():xs(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toSeq=function(){return this},t.prototype.toString=function(){return this.__toString("Seq {","}")},t.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},t.prototype.__iterate=function(n,i){var o=this._cache;if(o){for(var a=o.length,s=0;s!==a;){var u=o[i?a-++s:s++];if(n(u[1],u[0],this)===!1)break}return s}return this.__iterateUncached(n,i)},t.prototype.__iterator=function(n,i){var o=this._cache;if(o){var a=o.length,s=0;return new S(function(){if(s===a)return L();var u=o[i?a-++s:s++];return z(n,u[0],u[1])})}return this.__iteratorUncached(n,i)},t})(B),mt=(function(r){function t(e){return e==null?Xr().toKeyedSeq():F(e)?R(e)?e.toSeq():e.fromEntrySeq():Ot(e)?e.toSeq():Vr(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toKeyedSeq=function(){return this},t})(D),rt=(function(r){function t(e){return e==null?Xr():F(e)?R(e)?e.entrySeq():e.toIndexedSeq():Ot(e)?e.toSeq().entrySeq():ki(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toIndexedSeq=function(){return this},t.prototype.toString=function(){return this.__toString("Seq [","]")},t})(D),jt=(function(r){function t(e){return(F(e)&&!Ur(e)?e:rt(e)).toSetSeq()}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toSetSeq=function(){return this},t})(D);D.isSeq=Yr,D.Keyed=mt,D.Set=jt,D.Indexed=rt,D.prototype[Ai]=!0;var xt=(function(r){function t(e){this._array=e,this.size=e.length}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.get=function(n,i){return this.has(n)?this._array[yt(this,n)]:i},t.prototype.__iterate=function(n,i){for(var o=this._array,a=o.length,s=0;s!==a;){var u=i?a-++s:s++;if(n(o[u],u,this)===!1)break}return s},t.prototype.__iterator=function(n,i){var o=this._array,a=o.length,s=0;return new S(function(){if(s===a)return L();var u=i?a-++s:s++;return z(n,u,o[u])})},t})(rt),Jr=(function(r){function t(e){var n=Object.keys(e).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[]);this._object=e,this._keys=n,this.size=n.length}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.get=function(n,i){return i!==void 0&&!this.has(n)?i:this._object[n]},t.prototype.has=function(n){return Bt.call(this._object,n)},t.prototype.__iterate=function(n,i){for(var o=this._object,a=this._keys,s=a.length,u=0;u!==s;){var f=a[i?s-++u:u++];if(n(o[f],f,this)===!1)break}return u},t.prototype.__iterator=function(n,i){var o=this._object,a=this._keys,s=a.length,u=0;return new S(function(){if(u===s)return L();var f=a[i?s-++u:u++];return z(n,f,o[f])})},t})(mt);Jr.prototype[gt]=!0;var js=(function(r){function t(e){this._collection=e,this.size=e.length||e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.__iterateUncached=function(n,i){if(i)return this.cacheResult().__iterate(n,i);var o=this._collection,a=Kr(o),s=0;if(Oi(a))for(var u;!(u=a.next()).done&&n(u.value,s++,this)!==!1;);return s},t.prototype.__iteratorUncached=function(n,i){if(i)return this.cacheResult().__iterator(n,i);var o=this._collection,a=Kr(o);if(!Oi(a))return new S(L);var s=0;return new S(function(){var u=a.next();return u.done?u:z(n,s++,u.value)})},t})(rt),$i;function Xr(){return $i||($i=new xt([]))}function Vr(r){var t=Zr(r);if(t)return t.fromEntrySeq();if(typeof r=="object")return new Jr(r);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+r)}function ki(r){var t=Zr(r);if(t)return t;throw new TypeError("Expected Array or collection object of values: "+r)}function xs(r){var t=Zr(r);if(t)return ks(r)?t.fromEntrySeq():Bs(r)?t.toSetSeq():t;if(typeof r=="object")return new Jr(r);throw new TypeError("Expected Array or collection object of values, or keyed object: "+r)}function Zr(r){return Ci(r)?new xt(r):Mi(r)?new js(r):void 0}function Zt(){return this.__ensureOwner()}function Qt(){return this.__ownerID?this:this.__ensureOwner(new Gr)}var tr=typeof Math.imul=="function"&&Math.imul(4294967295,2)===-2?Math.imul:function(t,e){t|=0,e|=0;var n=t&65535,i=e&65535;return n*i+((t>>>16)*i+n*(e>>>16)<<16>>>0)|0};function Ir(r){return r>>>1&1073741824|r&3221225471}var Ls=Object.prototype.valueOf;function W(r){if(r==null)return Bi(r);if(typeof r.hashCode=="function")return Ir(r.hashCode(r));var t=Hs(r);if(t==null)return Bi(t);switch(typeof t){case"boolean":return t?1108378657:1108378656;case"number":return Ps(t);case"string":return t.length>Ks?Ns(t):Qr(t);case"object":case"function":return Fs(t);case"symbol":return Ds(t);default:if(typeof t.toString=="function")return Qr(t.toString());throw new Error("Value type "+typeof t+" cannot be hashed.")}}function Bi(r){return r===null?1108378658:1108378659}function Ps(r){if(r!==r||r===1/0)return 0;var t=r|0;for(t!==r&&(t^=r*4294967295);r>4294967295;)r/=4294967295,t^=r;return Ir(t)}function Ns(r){var t=ie[r];return t===void 0&&(t=Qr(r),ne===Ws&&(ne=0,ie={}),ne++,ie[r]=t),t}function Qr(r){for(var t=0,e=0;e<r.length;e++)t=31*t+r.charCodeAt(e)|0;return Ir(t)}function Ds(r){var t=Pi[r];return t!==void 0||(t=Li(),Pi[r]=t),t}function Fs(r){var t;if(te&&(t=re.get(r),t!==void 0)||(t=r[Et],t!==void 0)||!xi&&(t=r.propertyIsEnumerable&&r.propertyIsEnumerable[Et],t!==void 0||(t=Us(r),t!==void 0)))return t;if(t=Li(),te)re.set(r,t);else{if(ji!==void 0&&ji(r)===!1)throw new Error("Non-extensible objects are not allowed as keys.");if(xi)Object.defineProperty(r,Et,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(r.propertyIsEnumerable!==void 0&&r.propertyIsEnumerable===r.constructor.prototype.propertyIsEnumerable)r.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},r.propertyIsEnumerable[Et]=t;else if(r.nodeType!==void 0)r[Et]=t;else throw new Error("Unable to set a non-enumerable property on object.")}return t}var ji=Object.isExtensible,xi=(function(){try{return Object.defineProperty({},"@",{}),!0}catch{return!1}})();function Us(r){if(r&&r.nodeType>0)switch(r.nodeType){case 1:return r.uniqueID;case 9:return r.documentElement&&r.documentElement.uniqueID}}function Hs(r){return r.valueOf!==Ls&&typeof r.valueOf=="function"?r.valueOf(r):r}function Li(){var r=++ee;return ee&1073741824&&(ee=0),r}var te=typeof WeakMap=="function",re;te&&(re=new WeakMap);var Pi=Object.create(null),ee=0,Et="__immutablehash__";typeof Symbol=="function"&&(Et=Symbol(Et));var Ks=16,Ws=255,ne=0,ie={},qr=(function(r){function t(e,n){this._iter=e,this._useKeys=n,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.get=function(n,i){return this._iter.get(n,i)},t.prototype.has=function(n){return this._iter.has(n)},t.prototype.valueSeq=function(){return this._iter.valueSeq()},t.prototype.reverse=function(){var n=this,i=oe(this,!0);return this._useKeys||(i.valueSeq=function(){return n._iter.toSeq().reverse()}),i},t.prototype.map=function(n,i){var o=this,a=Hi(this,n,i);return this._useKeys||(a.valueSeq=function(){return o._iter.toSeq().map(n,i)}),a},t.prototype.__iterate=function(n,i){var o=this;return this._iter.__iterate(function(a,s){return n(a,s,o)},i)},t.prototype.__iterator=function(n,i){return this._iter.__iterator(n,i)},t})(mt);qr.prototype[gt]=!0;var Ni=(function(r){function t(e){this._iter=e,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.includes=function(n){return this._iter.includes(n)},t.prototype.__iterate=function(n,i){var o=this,a=0;return i&&kt(this),this._iter.__iterate(function(s){return n(s,i?o.size-++a:a++,o)},i)},t.prototype.__iterator=function(n,i){var o=this,a=this._iter.__iterator(U,i),s=0;return i&&kt(this),new S(function(){var u=a.next();return u.done?u:z(n,i?o.size-++s:s++,u.value,u)})},t})(rt),Di=(function(r){function t(e){this._iter=e,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.has=function(n){return this._iter.includes(n)},t.prototype.__iterate=function(n,i){var o=this;return this._iter.__iterate(function(a){return n(a,a,o)},i)},t.prototype.__iterator=function(n,i){var o=this._iter.__iterator(U,i);return new S(function(){var a=o.next();return a.done?a:z(n,a.value,a.value,a)})},t})(jt),Fi=(function(r){function t(e){this._iter=e,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.entrySeq=function(){return this._iter.toSeq()},t.prototype.__iterate=function(n,i){var o=this;return this._iter.__iterate(function(a){if(a){Ji(a);var s=F(a);return n(s?a.get(1):a[1],s?a.get(0):a[0],o)}},i)},t.prototype.__iterator=function(n,i){var o=this._iter.__iterator(U,i);return new S(function(){for(;;){var a=o.next();if(a.done)return a;var s=a.value;if(s){Ji(s);var u=F(s);return z(n,u?s.get(0):s[0],u?s.get(1):s[1],a)}}})},t})(mt);Ni.prototype.cacheResult=qr.prototype.cacheResult=Di.prototype.cacheResult=Fi.prototype.cacheResult=ue;function Ui(r){var t=ot(r);return t._iter=r,t.size=r.size,t.flip=function(){return r},t.reverse=function(){var e=r.reverse.apply(this);return e.flip=function(){return r.reverse()},e},t.has=function(e){return r.includes(e)},t.includes=function(e){return r.has(e)},t.cacheResult=ue,t.__iterateUncached=function(e,n){var i=this;return r.__iterate(function(o,a){return e(a,o,i)!==!1},n)},t.__iteratorUncached=function(e,n){if(e===H){var i=r.__iterator(e,n);return new S(function(){var o=i.next();if(!o.done){var a=o.value[0];o.value[0]=o.value[1],o.value[1]=a}return o})}return r.__iterator(e===U?$t:U,n)},t}function Hi(r,t,e){var n=ot(r);return n.size=r.size,n.has=function(i){return r.has(i)},n.get=function(i,o){var a=r.get(i,m);return a===m?o:t.call(e,a,i,r)},n.__iterateUncached=function(i,o){var a=this;return r.__iterate(function(s,u,f){return i(t.call(e,s,u,f),u,a)!==!1},o)},n.__iteratorUncached=function(i,o){var a=r.__iterator(H,o);return new S(function(){var s=a.next();if(s.done)return s;var u=s.value,f=u[0];return z(i,f,t.call(e,u[1],f,r),s)})},n}function oe(r,t){var e=this,n=ot(r);return n._iter=r,n.size=r.size,n.reverse=function(){return r},r.flip&&(n.flip=function(){var i=Ui(r);return i.reverse=function(){return r.flip()},i}),n.get=function(i,o){return r.get(t?i:-1-i,o)},n.has=function(i){return r.has(t?i:-1-i)},n.includes=function(i){return r.includes(i)},n.cacheResult=ue,n.__iterate=function(i,o){var a=this,s=0;return o&&kt(r),r.__iterate(function(u,f){return i(u,t?f:o?a.size-++s:s++,a)},!o)},n.__iterator=function(i,o){var a=0;o&&kt(r);var s=r.__iterator(H,!o);return new S(function(){var u=s.next();if(u.done)return u;var f=u.value;return z(i,t?f[0]:o?e.size-++a:a++,f[1],u)})},n}function Ki(r,t,e,n){var i=ot(r);return n&&(i.has=function(o){var a=r.get(o,m);return a!==m&&!!t.call(e,a,o,r)},i.get=function(o,a){var s=r.get(o,m);return s!==m&&t.call(e,s,o,r)?s:a}),i.__iterateUncached=function(o,a){var s=this,u=0;return r.__iterate(function(f,c,h){if(t.call(e,f,c,h))return u++,o(f,n?c:u-1,s)},a),u},i.__iteratorUncached=function(o,a){var s=r.__iterator(H,a),u=0;return new S(function(){for(;;){var f=s.next();if(f.done)return f;var c=f.value,h=c[0],p=c[1];if(t.call(e,p,h,r))return z(o,n?h:u++,p,f)}})},i}function Gs(r,t,e){var n=J().asMutable();return r.__iterate(function(i,o){n.update(t.call(e,i,o,r),0,function(a){return a+1})}),n.asImmutable()}function Ys(r,t,e){var n=R(r),i=(it(r)?_t():J()).asMutable();r.__iterate(function(a,s){i.update(t.call(e,a,s,r),function(u){return u=u||[],u.push(n?[s,a]:a),u})});var o=se(r);return i.map(function(a){return O(r,o(a))}).asImmutable()}function Js(r,t,e){var n=R(r),i=[[],[]];r.__iterate(function(a,s){i[t.call(e,a,s,r)?1:0].push(n?[s,a]:a)});var o=se(r);return i.map(function(a){return O(r,o(a))})}function ae(r,t,e,n){var i=r.size;if(wr(t,e,i))return r;if(typeof i>"u"&&(t<0||e<0))return ae(r.toSeq().cacheResult(),t,e,n);var o=Vt(t,i),a=br(e,i),s=a-o,u;s===s&&(u=s<0?0:s);var f=ot(r);return f.size=u===0?u:r.size&&u||void 0,!n&&Yr(r)&&u>=0&&(f.get=function(c,h){return c=yt(this,c),c>=0&&c<u?r.get(c+o,h):h}),f.__iterateUncached=function(c,h){var p=this;if(u===0)return 0;if(h)return this.cacheResult().__iterate(c,h);var _=0,d=!0,v=0;return r.__iterate(function(w,I){if(!(d&&(d=_++<o)))return v++,c(w,n?I:v-1,p)!==!1&&v!==u}),v},f.__iteratorUncached=function(c,h){if(u!==0&&h)return this.cacheResult().__iterator(c,h);if(u===0)return new S(L);var p=r.__iterator(c,h),_=0,d=0;return new S(function(){for(;_++<o;)p.next();if(++d>u)return L();var v=p.next();return n||c===U||v.done?v:c===$t?z(c,d-1,void 0,v):z(c,d-1,v.value[1],v)})},f}function Xs(r,t,e){var n=ot(r);return n.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var s=0;return r.__iterate(function(u,f,c){return t.call(e,u,f,c)&&++s&&i(u,f,a)}),s},n.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var s=r.__iterator(H,o),u=!0;return new S(function(){if(!u)return L();var f=s.next();if(f.done)return f;var c=f.value,h=c[0],p=c[1];return t.call(e,p,h,a)?i===H?f:z(i,h,p,f):(u=!1,L())})},n}function Wi(r,t,e,n){var i=ot(r);return i.__iterateUncached=function(o,a){var s=this;if(a)return this.cacheResult().__iterate(o,a);var u=!0,f=0;return r.__iterate(function(c,h,p){if(!(u&&(u=t.call(e,c,h,p))))return f++,o(c,n?h:f-1,s)}),f},i.__iteratorUncached=function(o,a){var s=this;if(a)return this.cacheResult().__iterator(o,a);var u=r.__iterator(H,a),f=!0,c=0;return new S(function(){var h,p,_;do{if(h=u.next(),h.done)return n||o===U?h:o===$t?z(o,c++,void 0,h):z(o,c++,h.value[1],h);var d=h.value;p=d[0],_=d[1],f&&(f=t.call(e,_,p,s))}while(f);return o===H?h:z(o,p,_,h)})},i}var Vs=(function(r){function t(e){this._wrappedIterables=e.flatMap(function(n){return n._wrappedIterables?n._wrappedIterables:[n]}),this.size=this._wrappedIterables.reduce(function(n,i){if(n!==void 0){var o=i.size;if(o!==void 0)return n+o}},0),this[gr]=this._wrappedIterables[0][gr],this[vt]=this._wrappedIterables[0][vt],this[gt]=this._wrappedIterables[0][gt]}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.__iterateUncached=function(n,i){if(this._wrappedIterables.length!==0){if(i)return this.cacheResult().__iterate(n,i);for(var o=0,a=R(this),s=a?H:U,u=this._wrappedIterables[o].__iterator(s,i),f=!0,c=0;f;){for(var h=u.next();h.done;){if(o++,o===this._wrappedIterables.length)return c;u=this._wrappedIterables[o].__iterator(s,i),h=u.next()}var p=a?n(h.value[1],h.value[0],this):n(h.value,c,this);f=p!==!1,c++}return c}},t.prototype.__iteratorUncached=function(n,i){var o=this;if(this._wrappedIterables.length===0)return new S(L);if(i)return this.cacheResult().__iterator(n,i);var a=0,s=this._wrappedIterables[a].__iterator(n,i);return new S(function(){for(var u=s.next();u.done;){if(a++,a===o._wrappedIterables.length)return u;s=o._wrappedIterables[a].__iterator(n,i),u=s.next()}return u})},t})(D);function Zs(r,t){var e=R(r),n=[r].concat(t).map(function(o){return F(o)?e&&(o=V(o)):o=e?Vr(o):ki(Array.isArray(o)?o:[o]),o}).filter(function(o){return o.size!==0});if(n.length===0)return r;if(n.length===1){var i=n[0];if(i===r||e&&R(i)||X(r)&&X(i))return i}return new Vs(n)}function Gi(r,t,e){var n=ot(r);return n.__iterateUncached=function(i,o){if(o)return this.cacheResult().__iterate(i,o);var a=0,s=!1;function u(f,c){f.__iterate(function(h,p){return(!t||c<t)&&F(h)?u(h,c+1):(a++,i(h,e?p:a-1,n)===!1&&(s=!0)),!s},o)}return u(r,0),a},n.__iteratorUncached=function(i,o){if(o)return this.cacheResult().__iterator(i,o);var a=r.__iterator(i,o),s=[],u=0;return new S(function(){for(;a;){var f=a.next();if(f.done!==!1){a=s.pop();continue}var c=f.value;if(i===H&&(c=c[1]),(!t||s.length<t)&&F(c))s.push(a),a=c.__iterator(i,o);else return e?f:z(i,u++,c,f)}return L()})},n}function Qs(r,t,e){var n=se(r);return r.toSeq().map(function(i,o){return n(t.call(e,i,o,r))}).flatten(!0)}function tu(r,t){var e=ot(r);return e.size=r.size&&r.size*2-1,e.__iterateUncached=function(n,i){var o=this,a=0;return r.__iterate(function(s){return(!a||n(t,a++,o)!==!1)&&n(s,a++,o)!==!1},i),a},e.__iteratorUncached=function(n,i){var o=r.__iterator(U,i),a=0,s;return new S(function(){return(!s||a%2)&&(s=o.next(),s.done)?s:a%2?z(n,a++,t):z(n,a++,s.value,s)})},e}function Lt(r,t,e){t||(t=Xi);var n=R(r),i=0,o=r.toSeq().map(function(a,s){return[s,a,i++,e?e(a,s,r):a]}).valueSeq().toArray();return o.sort(function(a,s){return t(a[3],s[3])||a[2]-s[2]}).forEach(n?function(a,s){o[s].length=2}:function(a,s){o[s]=a[1]}),n?mt(o):X(r)?rt(o):jt(o)}function Mr(r,t,e){if(t||(t=Xi),e){var n=r.toSeq().map(function(i,o){return[i,e(i,o,r)]}).reduce(function(i,o){return Yi(t,i[1],o[1])?o:i});return n&&n[0]}return r.reduce(function(i,o){return Yi(t,i,o)?o:i})}function Yi(r,t,e){var n=r(e,t);return n===0&&e!==t&&(e==null||e!==e)||n>0}function Or(r,t,e,n){var i=ot(r),o=new xt(e).map(function(a){return a.size});return i.size=n?o.max():o.min(),i.__iterate=function(a,s){for(var u=this.__iterator(U,s),f,c=0;!(f=u.next()).done&&a(f.value,c++,this)!==!1;);return c},i.__iteratorUncached=function(a,s){var u=e.map(function(h){return h=B(h),Kr(s?h.reverse():h)}),f=0,c=!1;return new S(function(){var h;return c||(h=u.map(function(p){return p.next()}),c=n?h.every(function(p){return p.done}):h.some(function(p){return p.done})),c?L():z(a,f++,t.apply(null,h.map(function(p){return p.value})))})},i}function O(r,t){return r===t?r:Yr(r)?t:r.constructor(t)}function Ji(r){if(r!==Object(r))throw new TypeError("Expected [K, V] tuple: "+r)}function se(r){return R(r)?V:X(r)?Mt:Ct}function ot(r){return Object.create((R(r)?mt:X(r)?rt:jt).prototype)}function ue(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):D.prototype.cacheResult.call(this)}function Xi(r,t){return r===void 0&&t===void 0?0:r===void 0?1:t===void 0?-1:r>t?1:r<t?-1:0}function Vi(r){return!!(r&&typeof r.equals=="function"&&typeof r.hashCode=="function")}function G(r,t){if(r===t||r!==r&&t!==t)return!0;if(!r||!t)return!1;if(typeof r.valueOf=="function"&&typeof t.valueOf=="function"){if(r=r.valueOf(),t=t.valueOf(),r===t||r!==r&&t!==t)return!0;if(!r||!t)return!1}return!!(Vi(r)&&Vi(t)&&r.equals(t))}function Zi(r,t,e,n){return Dt(r,[t],e,n)}function Qi(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];return ro(this,r)}function to(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];if(typeof r!="function")throw new TypeError("Invalid merger function: "+r);return ro(this,t,r)}function ro(r,t,e){for(var n=[],i=0;i<t.length;i++){var o=V(t[i]);o.size!==0&&n.push(o)}return n.length===0?r:r.toSeq().size===0&&!r.__ownerID&&n.length===1?Ot(r)?r:r.constructor(n[0]):r.withMutations(function(a){for(var s=e?function(f,c){Zi(a,c,m,function(h){return h===m?f:e(h,f,c)})}:function(f,c){a.set(c,f)},u=0;u<n.length;u++)n[u].forEach(s)})}var ru=Object.prototype.toString;function eu(r){if(!r||typeof r!="object"||ru.call(r)!=="[object Object]")return!1;var t=Object.getPrototypeOf(r);if(t===null)return!0;for(var e=t,n=Object.getPrototypeOf(t);n!==null;)e=n,n=Object.getPrototypeOf(e);return e===t}function St(r){return typeof r=="object"&&(nt(r)||Array.isArray(r)||eu(r))}function at(r,t){t=t||0;for(var e=Math.max(0,r.length-t),n=new Array(e),i=0;i<e;i++)n[i]=r[i+t];return n}function Er(r){if(Array.isArray(r))return at(r);var t={};for(var e in r)Bt.call(r,e)&&(t[e]=r[e]);return t}function fe(r,t,e){return ce(r,t,nu(e))}function ce(r,t,e){if(!St(r))throw new TypeError("Cannot merge into non-data-structure value: "+r);if(nt(r))return typeof e=="function"&&r.mergeWith?r.mergeWith.apply(r,[e].concat(t)):r.merge?r.merge.apply(r,t):r.concat.apply(r,t);for(var n=Array.isArray(r),i=r,o=n?Mt:V,a=n?function(u){i===r&&(i=Er(i)),i.push(u)}:function(u,f){var c=Bt.call(i,f),h=c&&e?e(i[f],u,f):u;(!c||h!==i[f])&&(i===r&&(i=Er(i)),i[f]=h)},s=0;s<t.length;s++)o(t[s]).forEach(a);return i}function nu(r){function t(e,n,i){return St(e)&&St(n)&&iu(e,n)?ce(e,[n],t):r?r(e,n,i):n}return t}function iu(r,t){var e=D(r),n=D(t);return X(e)===X(n)&&R(e)===R(n)}function eo(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];return fe(this,r)}function no(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return fe(this,t,r)}function he(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return Dt(this,r,st(),function(n){return fe(n,t)})}function pe(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return Dt(this,r,st(),function(n){return ce(n,t)})}function ou(r,t,e){return Dt(r,t,m,function(){return e})}function _e(r,t){return ou(this,r,t)}function de(r,t,e){return arguments.length===1?r(this):Zi(this,r,t,e)}function le(r,t,e){return Dt(this,r,t,e)}function ve(){return this.__altered}function rr(r){var t=this.asMutable();return r(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this}var io="@@__IMMUTABLE_MAP__@@";function ye(r){return!!(r&&r[io])}function er(r,t){if(!r)throw new Error(t)}function Y(r){er(r!==1/0,"Cannot perform this action with an infinite size.")}var J=(function(r){function t(e){return e==null?st():ye(e)&&!it(e)?e:st().withMutations(function(n){var i=r(e);Y(i.size),i.forEach(function(o,a){return n.set(a,o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.__toString("Map {","}")},t.prototype.get=function(n,i){return this._root?this._root.get(0,void 0,n,i):i},t.prototype.set=function(n,i){return so(this,n,i)},t.prototype.remove=function(n){return so(this,n,m)},t.prototype.deleteAll=function(n){var i=B(n);return i.size===0?this:this.withMutations(function(o){i.forEach(function(a){return o.remove(a)})})},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):st()},t.prototype.sort=function(n){return _t(Lt(this,n))},t.prototype.sortBy=function(n,i){return _t(Lt(this,i,n))},t.prototype.map=function(n,i){var o=this;return this.withMutations(function(a){a.forEach(function(s,u){a.set(u,n.call(i,s,u,o))})})},t.prototype.__iterator=function(n,i){return new au(this,n,i)},t.prototype.__iterate=function(n,i){var o=this,a=0;return this._root&&this._root.iterate(function(s){return a++,n(s[1],s[0],o)},i),a},t.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?me(this.size,this._root,n,this.__hash):this.size===0?st():(this.__ownerID=n,this.__altered=!1,this)},t})(V);J.isMap=ye;var T=J.prototype;T[io]=!0,T[Xt]=T.remove,T.removeAll=T.deleteAll,T.setIn=_e,T.removeIn=T.deleteIn=be,T.update=de,T.updateIn=le,T.merge=T.concat=Qi,T.mergeWith=to,T.mergeDeep=eo,T.mergeDeepWith=no,T.mergeIn=pe,T.mergeDeepIn=he,T.withMutations=rr,T.wasAltered=ve,T.asImmutable=Zt,T["@@transducer/init"]=T.asMutable=Qt,T["@@transducer/step"]=function(r,t){return r.set(t[0],t[1])},T["@@transducer/result"]=function(r){return r.asImmutable()};var nr=function(t,e){this.ownerID=t,this.entries=e};nr.prototype.get=function(t,e,n,i){for(var o=this.entries,a=0,s=o.length;a<s;a++)if(G(n,o[a][0]))return o[a][1];return i},nr.prototype.update=function(t,e,n,i,o,a,s){for(var u=o===m,f=this.entries,c=0,h=f.length;c<h&&!G(i,f[c][0]);c++);var p=c<h;if(p?f[c][1]===o:u)return this;if(Z(s),(u||!p)&&Z(a),!(u&&f.length===1)){if(!p&&!u&&f.length>=pu)return su(t,f,i,o);var _=t&&t===this.ownerID,d=_?f:at(f);return p?u?c===h-1?d.pop():d[c]=d.pop():d[c]=[i,o]:d.push([i,o]),_?(this.entries=d,this):new nr(t,d)}};var Pt=function(t,e,n){this.ownerID=t,this.bitmap=e,this.nodes=n};Pt.prototype.get=function(t,e,n,i){e===void 0&&(e=W(n));var o=1<<((t===0?e:e>>>t)&P),a=this.bitmap;return(a&o)===0?i:this.nodes[fo(a&o-1)].get(t+M,e,n,i)},Pt.prototype.update=function(t,e,n,i,o,a,s){n===void 0&&(n=W(i));var u=(e===0?n:n>>>e)&P,f=1<<u,c=this.bitmap,h=(c&f)!==0;if(!h&&o===m)return this;var p=fo(c&f-1),_=this.nodes,d=h?_[p]:void 0,v=Se(d,t,e+M,n,i,o,a,s);if(v===d)return this;if(!h&&v&&_.length>=_u)return fu(t,_,c,u,v);if(h&&!v&&_.length===2&&uo(_[p^1]))return _[p^1];if(h&&v&&_.length===1&&uo(v))return v;var w=t&&t===this.ownerID,I=h?v?c:c^f:c|f,y=h?v?co(_,p,v,w):hu(_,p,w):cu(_,p,v,w);return w?(this.bitmap=I,this.nodes=y,this):new Pt(t,I,y)};var ir=function(t,e,n){this.ownerID=t,this.count=e,this.nodes=n};ir.prototype.get=function(t,e,n,i){e===void 0&&(e=W(n));var o=(t===0?e:e>>>t)&P,a=this.nodes[o];return a?a.get(t+M,e,n,i):i},ir.prototype.update=function(t,e,n,i,o,a,s){n===void 0&&(n=W(i));var u=(e===0?n:n>>>e)&P,f=o===m,c=this.nodes,h=c[u];if(f&&!h)return this;var p=Se(h,t,e+M,n,i,o,a,s);if(p===h)return this;var _=this.count;if(!h)_++;else if(!p&&(_--,_<du))return uu(t,c,_,u);var d=t&&t===this.ownerID,v=co(c,u,p,d);return d?(this.count=_,this.nodes=v,this):new ir(t,_,v)};var Nt=function(t,e,n){this.ownerID=t,this.keyHash=e,this.entries=n};Nt.prototype.get=function(t,e,n,i){for(var o=this.entries,a=0,s=o.length;a<s;a++)if(G(n,o[a][0]))return o[a][1];return i},Nt.prototype.update=function(t,e,n,i,o,a,s){n===void 0&&(n=W(i));var u=o===m;if(n!==this.keyHash)return u?this:(Z(s),Z(a),we(this,t,e,n,[i,o]));for(var f=this.entries,c=0,h=f.length;c<h&&!G(i,f[c][0]);c++);var p=c<h;if(p?f[c][1]===o:u)return this;if(Z(s),(u||!p)&&Z(a),u&&h===2)return new pt(t,this.keyHash,f[c^1]);var _=t&&t===this.ownerID,d=_?f:at(f);return p?u?c===h-1?d.pop():d[c]=d.pop():d[c]=[i,o]:d.push([i,o]),_?(this.entries=d,this):new Nt(t,this.keyHash,d)};var pt=function(t,e,n){this.ownerID=t,this.keyHash=e,this.entry=n};pt.prototype.get=function(t,e,n,i){return G(n,this.entry[0])?this.entry[1]:i},pt.prototype.update=function(t,e,n,i,o,a,s){var u=o===m,f=G(i,this.entry[0]);if(f?o===this.entry[1]:u)return this;if(Z(s),u){Z(a);return}return f?t&&t===this.ownerID?(this.entry[1]=o,this):new pt(t,this.keyHash,[i,o]):(Z(a),we(this,t,e,W(i),[i,o]))},nr.prototype.iterate=Nt.prototype.iterate=function(r,t){for(var e=this.entries,n=0,i=e.length-1;n<=i;n++)if(r(e[t?i-n:n])===!1)return!1},Pt.prototype.iterate=ir.prototype.iterate=function(r,t){for(var e=this.nodes,n=0,i=e.length-1;n<=i;n++){var o=e[t?i-n:n];if(o&&o.iterate(r,t)===!1)return!1}},pt.prototype.iterate=function(r,t){return r(this.entry)};var au=(function(r){function t(e,n,i){this._type=n,this._reverse=i,this._stack=e._root&&oo(e._root)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.next=function(){for(var n=this._type,i=this._stack;i;){var o=i.node,a=i.index++,s=void 0;if(o.entry){if(a===0)return ge(n,o.entry)}else if(o.entries){if(s=o.entries.length-1,a<=s)return ge(n,o.entries[this._reverse?s-a:a])}else if(s=o.nodes.length-1,a<=s){var u=o.nodes[this._reverse?s-a:a];if(u){if(u.entry)return ge(n,u.entry);i=this._stack=oo(u,i)}continue}i=this._stack=this._stack.__prev}return L()},t})(S);function ge(r,t){return z(r,t[0],t[1])}function oo(r,t){return{node:r,index:0,__prev:t}}function me(r,t,e,n){var i=Object.create(T);return i.size=r,i._root=t,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}var ao;function st(){return ao||(ao=me(0))}function so(r,t,e){var n,i;if(r._root){var o=Wr(),a=Wr();if(n=Se(r._root,r.__ownerID,0,void 0,t,e,o,a),!a.value)return r;i=r.size+(o.value?e===m?-1:1:0)}else{if(e===m)return r;i=1,n=new nr(r.__ownerID,[[t,e]])}return r.__ownerID?(r.size=i,r._root=n,r.__hash=void 0,r.__altered=!0,r):n?me(i,n):st()}function Se(r,t,e,n,i,o,a,s){return r?r.update(t,e,n,i,o,a,s):o===m?r:(Z(s),Z(a),new pt(t,n,[i,o]))}function uo(r){return r.constructor===pt||r.constructor===Nt}function we(r,t,e,n,i){if(r.keyHash===n)return new Nt(t,n,[r.entry,i]);var o=(e===0?r.keyHash:r.keyHash>>>e)&P,a=(e===0?n:n>>>e)&P,s,u=o===a?[we(r,t,e+M,n,i)]:(s=new pt(t,n,i),o<a?[r,s]:[s,r]);return new Pt(t,1<<o|1<<a,u)}function su(r,t,e,n){r||(r=new Gr);for(var i=new pt(r,W(e),[e,n]),o=0;o<t.length;o++){var a=t[o];i=i.update(r,0,void 0,a[0],a[1])}return i}function uu(r,t,e,n){for(var i=0,o=0,a=new Array(e),s=0,u=1,f=t.length;s<f;s++,u<<=1){var c=t[s];c!==void 0&&s!==n&&(i|=u,a[o++]=c)}return new Pt(r,i,a)}function fu(r,t,e,n,i){for(var o=0,a=new Array(K),s=0;e!==0;s++,e>>>=1)a[s]=e&1?t[o++]:void 0;return a[n]=i,new ir(r,o+1,a)}function fo(r){return r-=r>>1&1431655765,r=(r&858993459)+(r>>2&858993459),r=r+(r>>4)&252645135,r+=r>>8,r+=r>>16,r&127}function co(r,t,e,n){var i=n?r:at(r);return i[t]=e,i}function cu(r,t,e,n){var i=r.length+1;if(n&&t+1===i)return r[t]=e,r;for(var o=new Array(i),a=0,s=0;s<i;s++)s===t?(o[s]=e,a=-1):o[s]=r[s+a];return o}function hu(r,t,e){var n=r.length-1;if(e&&t===n)return r.pop(),r;for(var i=new Array(n),o=0,a=0;a<n;a++)a===t&&(o=1),i[a]=r[a+o];return i}var pu=K/4,_u=K/2,du=K/4;function ho(r){if(Ci(r)&&typeof r!="string")return r;if(it(r))return r.toArray();throw new TypeError("Invalid keyPath: expected Ordered Collection or Array: "+r)}function or(r){try{return typeof r=="string"?JSON.stringify(r):String(r)}catch{return JSON.stringify(r)}}function lu(r,t){return nt(r)?r.has(t):St(r)&&Bt.call(r,t)}function po(r,t,e){return nt(r)?r.get(t,e):lu(r,t)?typeof r.get=="function"?r.get(t):r[t]:e}function vu(r,t){if(!St(r))throw new TypeError("Cannot update non-data-structure value: "+r);if(nt(r)){if(!r.remove)throw new TypeError("Cannot update immutable value without .remove() method: "+r);return r.remove(t)}if(!Bt.call(r,t))return r;var e=Er(r);return Array.isArray(e)?e.splice(t,1):delete e[t],e}function yu(r,t,e){if(!St(r))throw new TypeError("Cannot update non-data-structure value: "+r);if(nt(r)){if(!r.set)throw new TypeError("Cannot update immutable value without .set() method: "+r);return r.set(t,e)}if(Bt.call(r,t)&&e===r[t])return r;var n=Er(r);return n[t]=e,n}function Dt(r,t,e,n){n||(n=e,e=void 0);var i=_o(nt(r),r,ho(t),0,e,n);return i===m?e:i}function _o(r,t,e,n,i,o){var a=t===m;if(n===e.length){var s=a?i:t,u=o(s);return u===s?t:u}if(!a&&!St(t))throw new TypeError("Cannot update within non-data-structure value in path ["+Array.from(e).slice(0,n).map(or)+"]: "+t);var f=e[n],c=a?m:po(t,f,m),h=_o(c===m?r:nt(c),c,e,n+1,i,o);return h===c?t:h===m?vu(t,f):yu(a?r?st():{}:t,f,h)}function gu(r,t){return Dt(r,t,function(){return m})}function be(r){return gu(this,r)}var lo="@@__IMMUTABLE_LIST__@@";function vo(r){return!!(r&&r[lo])}var Tr=(function(r){function t(e){var n=Rr();if(e==null)return n;if(vo(e))return e;var i=r(e),o=i.size;return o===0?n:(Y(o),o>0&&o<K?sr(0,o,M,null,new wt(i.toArray())):n.withMutations(function(a){a.setSize(o),i.forEach(function(s,u){return a.set(u,s)})}))}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("List [","]")},t.prototype.get=function(n,i){if(n=yt(this,n),n>=0&&n<this.size){n+=this._origin;var o=go(this,n);return o&&o.array[n&P]}return i},t.prototype.set=function(n,i){return mu(this,n,i)},t.prototype.remove=function(n){return this.has(n)?n===0?this.shift():n===this.size-1?this.pop():this.splice(n,1):this},t.prototype.insert=function(n,i){return this.splice(n,0,i)},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=M,this._root=this._tail=this.__hash=void 0,this.__altered=!0,this):Rr()},t.prototype.push=function(){var n=arguments,i=this.size;return this.withMutations(function(o){bt(o,0,i+n.length);for(var a=0;a<n.length;a++)o.set(i+a,n[a])})},t.prototype.pop=function(){return bt(this,0,-1)},t.prototype.unshift=function(){var n=arguments;return this.withMutations(function(i){bt(i,-n.length);for(var o=0;o<n.length;o++)i.set(o,n[o])})},t.prototype.shift=function(){return bt(this,1)},t.prototype.shuffle=function(n){return n===void 0&&(n=Math.random),this.withMutations(function(i){for(var o=i.size,a,s;o;)a=Math.floor(n()*o--),s=i.get(a),i.set(a,i.get(o)),i.set(o,s)})},t.prototype.concat=function(){for(var n=arguments,i=[],o=0;o<arguments.length;o++){var a=n[o],s=r(typeof a!="string"&&Mi(a)?a:[a]);s.size!==0&&i.push(s)}return i.length===0?this:this.size===0&&!this.__ownerID&&i.length===1?this.constructor(i[0]):this.withMutations(function(u){i.forEach(function(f){return f.forEach(function(c){return u.push(c)})})})},t.prototype.setSize=function(n){return bt(this,0,n)},t.prototype.map=function(n,i){var o=this;return this.withMutations(function(a){for(var s=0;s<o.size;s++)a.set(s,n.call(i,a.get(s),s,o))})},t.prototype.slice=function(n,i){var o=this.size;return wr(n,i,o)?this:bt(this,Vt(n,o),br(i,o))},t.prototype.__iterator=function(n,i){var o=i?this.size:0,a=yo(this,i);return new S(function(){var s=a();return s===ar?L():z(n,i?--o:o++,s)})},t.prototype.__iterate=function(n,i){for(var o=i?this.size:0,a=yo(this,i),s;(s=a())!==ar&&n(s,i?--o:o++,this)!==!1;);return o},t.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?sr(this._origin,this._capacity,this._level,this._root,this._tail,n,this.__hash):this.size===0?Rr():(this.__ownerID=n,this.__altered=!1,this)},t})(Mt);Tr.isList=vo;var $=Tr.prototype;$[lo]=!0,$[Xt]=$.remove,$.merge=$.concat,$.setIn=_e,$.deleteIn=$.removeIn=be,$.update=de,$.updateIn=le,$.mergeIn=pe,$.mergeDeepIn=he,$.withMutations=rr,$.wasAltered=ve,$.asImmutable=Zt,$["@@transducer/init"]=$.asMutable=Qt,$["@@transducer/step"]=function(r,t){return r.push(t)},$["@@transducer/result"]=function(r){return r.asImmutable()};var wt=function(t,e){this.array=t,this.ownerID=e};wt.prototype.removeBefore=function(t,e,n){if((n&(1<<e+M)-1)===0||this.array.length===0)return this;var i=n>>>e&P;if(i>=this.array.length)return new wt([],t);var o=i===0,a;if(e>0){var s=this.array[i];if(a=s&&s.removeBefore(t,e-M,n),a===s&&o)return this}if(o&&!a)return this;var u=Ft(this,t);if(!o)for(var f=0;f<i;f++)u.array[f]=void 0;return a&&(u.array[i]=a),u},wt.prototype.removeAfter=function(t,e,n){if(n===(e?1<<e+M:K)||this.array.length===0)return this;var i=n-1>>>e&P;if(i>=this.array.length)return this;var o;if(e>0){var a=this.array[i];if(o=a&&a.removeAfter(t,e-M,n),o===a&&i===this.array.length-1)return this}var s=Ft(this,t);return s.array.splice(i+1),o&&(s.array[i]=o),s};var ar={};function yo(r,t){var e=r._origin,n=r._capacity,i=ur(n),o=r._tail;return a(r._root,r._level,0);function a(f,c,h){return c===0?s(f,h):u(f,c,h)}function s(f,c){var h=c===i?o&&o.array:f&&f.array,p=c>e?0:e-c,_=n-c;return _>K&&(_=K),function(){if(p===_)return ar;var d=t?--_:p++;return h&&h[d]}}function u(f,c,h){var p,_=f&&f.array,d=h>e?0:e-h>>c,v=(n-h>>c)+1;return v>K&&(v=K),function(){for(;;){if(p){var w=p();if(w!==ar)return w;p=null}if(d===v)return ar;var I=t?--v:d++;p=a(_&&_[I],c-M,h+(I<<c))}}}}function sr(r,t,e,n,i,o,a){var s=Object.create($);return s.size=t-r,s._origin=r,s._capacity=t,s._level=e,s._root=n,s._tail=i,s.__ownerID=o,s.__hash=a,s.__altered=!1,s}function Rr(){return sr(0,0,M)}function mu(r,t,e){if(t=yt(r,t),t!==t)return r;if(t>=r.size||t<0)return r.withMutations(function(a){t<0?bt(a,t).set(0,e):bt(a,0,t+1).set(t,e)});t+=r._origin;var n=r._tail,i=r._root,o=Wr();return t>=ur(r._capacity)?n=Ie(n,r.__ownerID,0,t,e,o):i=Ie(i,r.__ownerID,r._level,t,e,o),o.value?r.__ownerID?(r._root=i,r._tail=n,r.__hash=void 0,r.__altered=!0,r):sr(r._origin,r._capacity,r._level,i,n):r}function Ie(r,t,e,n,i,o){var a=n>>>e&P,s=r&&a<r.array.length;if(!s&&i===void 0)return r;var u;if(e>0){var f=r&&r.array[a],c=Ie(f,t,e-M,n,i,o);return c===f?r:(u=Ft(r,t),u.array[a]=c,u)}return s&&r.array[a]===i?r:(o&&Z(o),u=Ft(r,t),i===void 0&&a===u.array.length-1?u.array.pop():u.array[a]=i,u)}function Ft(r,t){return t&&r&&t===r.ownerID?r:new wt(r?r.array.slice():[],t)}function go(r,t){if(t>=ur(r._capacity))return r._tail;if(t<1<<r._level+M){for(var e=r._root,n=r._level;e&&n>0;)e=e.array[t>>>n&P],n-=M;return e}}function bt(r,t,e){t!==void 0&&(t|=0),e!==void 0&&(e|=0);var n=r.__ownerID||new Gr,i=r._origin,o=r._capacity,a=i+t,s=e===void 0?o:e<0?o+e:i+e;if(a===i&&s===o)return r;if(a>=s)return r.clear();for(var u=r._level,f=r._root,c=0;a+c<0;)f=new wt(f&&f.array.length?[void 0,f]:[],n),u+=M,c+=1<<u;c&&(a+=c,i+=c,s+=c,o+=c);for(var h=ur(o),p=ur(s);p>=1<<u+M;)f=new wt(f&&f.array.length?[f]:[],n),u+=M;var _=r._tail,d=p<h?go(r,s-1):p>h?new wt([],n):_;if(_&&p>h&&a<o&&_.array.length){f=Ft(f,n);for(var v=f,w=u;w>M;w-=M){var I=h>>>w&P;v=v.array[I]=Ft(v.array[I],n)}v.array[h>>>M&P]=_}if(s<o&&(d=d&&d.removeAfter(n,0,s)),a>=p)a-=p,s-=p,u=M,f=null,d=d&&d.removeBefore(n,0,a);else if(a>i||p<h){for(c=0;f;){var y=a>>>u&P;if(y!==p>>>u&P)break;y&&(c+=(1<<u)*y),u-=M,f=f.array[y]}f&&a>i&&(f=f.removeBefore(n,u,a-c)),f&&p<h&&(f=f.removeAfter(n,u,p-c)),c&&(a-=c,s-=c)}return r.__ownerID?(r.size=s-a,r._origin=a,r._capacity=s,r._level=u,r._root=f,r._tail=d,r.__hash=void 0,r.__altered=!0,r):sr(a,s,u,f,d)}function ur(r){return r<K?0:r-1>>>M<<M}function mo(r){return ye(r)&&it(r)}var _t=(function(r){function t(e){return e==null?fr():mo(e)?e:fr().withMutations(function(n){var i=V(e);Y(i.size),i.forEach(function(o,a){return n.set(a,o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("OrderedMap {","}")},t.prototype.get=function(n,i){var o=this._map.get(n);return o!==void 0?this._list.get(o)[1]:i},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this.__altered=!0,this):fr()},t.prototype.set=function(n,i){return wo(this,n,i)},t.prototype.remove=function(n){return wo(this,n,m)},t.prototype.__iterate=function(n,i){var o=this;return this._list.__iterate(function(a){return a&&n(a[1],a[0],o)},i)},t.prototype.__iterator=function(n,i){return this._list.fromEntrySeq().__iterator(n,i)},t.prototype.__ensureOwner=function(n){if(n===this.__ownerID)return this;var i=this._map.__ensureOwner(n),o=this._list.__ensureOwner(n);return n?qe(i,o,n,this.__hash):this.size===0?fr():(this.__ownerID=n,this.__altered=!1,this._map=i,this._list=o,this)},t})(J);_t.isOrderedMap=mo,_t.prototype[gt]=!0,_t.prototype[Xt]=_t.prototype.remove;function qe(r,t,e,n){var i=Object.create(_t.prototype);return i.size=r?r.size:0,i._map=r,i._list=t,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}var So;function fr(){return So||(So=qe(st(),Rr()))}function wo(r,t,e){var n=r._map,i=r._list,o=n.get(t),a=o!==void 0,s,u;if(e===m){if(!a)return r;i.size>=K&&i.size>=n.size*2?(u=i.filter(function(f,c){return f!==void 0&&o!==c}),s=u.toKeyedSeq().map(function(f){return f[0]}).flip().toMap(),r.__ownerID&&(s.__ownerID=u.__ownerID=r.__ownerID)):(s=n.remove(t),u=o===i.size-1?i.pop():i.set(o,void 0))}else if(a){if(e===i.get(o)[1])return r;s=n,u=i.set(o,[t,e])}else s=n.set(t,i.size),u=i.set(i.size,[t,e]);return r.__ownerID?(r.size=s.size,r._map=s,r._list=u,r.__hash=void 0,r.__altered=!0,r):qe(s,u)}var bo="@@__IMMUTABLE_STACK__@@";function Me(r){return!!(r&&r[bo])}var Oe=(function(r){function t(e){return e==null?zr():Me(e)?e:zr().pushAll(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("Stack [","]")},t.prototype.get=function(n,i){var o=this._head;for(n=yt(this,n);o&&n--;)o=o.next;return o?o.value:i},t.prototype.peek=function(){return this._head&&this._head.value},t.prototype.push=function(){var n=arguments;if(arguments.length===0)return this;for(var i=this.size+arguments.length,o=this._head,a=arguments.length-1;a>=0;a--)o={value:n[a],next:o};return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):cr(i,o)},t.prototype.pushAll=function(n){if(n=r(n),n.size===0)return this;if(this.size===0&&Me(n))return n;Y(n.size);var i=this.size,o=this._head;return n.__iterate(function(a){i++,o={value:a,next:o}},!0),this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):cr(i,o)},t.prototype.pop=function(){return this.slice(1)},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):zr()},t.prototype.slice=function(n,i){if(wr(n,i,this.size))return this;var o=Vt(n,this.size),a=br(i,this.size);if(a!==this.size)return r.prototype.slice.call(this,n,i);for(var s=this.size-o,u=this._head;o--;)u=u.next;return this.__ownerID?(this.size=s,this._head=u,this.__hash=void 0,this.__altered=!0,this):cr(s,u)},t.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?cr(this.size,this._head,n,this.__hash):this.size===0?zr():(this.__ownerID=n,this.__altered=!1,this)},t.prototype.__iterate=function(n,i){var o=this;if(i)return new xt(this.toArray()).__iterate(function(u,f){return n(u,f,o)},i);for(var a=0,s=this._head;s&&n(s.value,a++,this)!==!1;)s=s.next;return a},t.prototype.__iterator=function(n,i){if(i)return new xt(this.toArray()).__iterator(n,i);var o=0,a=this._head;return new S(function(){if(a){var s=a.value;return a=a.next,z(n,o++,s)}return L()})},t})(Mt);Oe.isStack=Me;var N=Oe.prototype;N[bo]=!0,N.shift=N.pop,N.unshift=N.push,N.unshiftAll=N.pushAll,N.withMutations=rr,N.wasAltered=ve,N.asImmutable=Zt,N["@@transducer/init"]=N.asMutable=Qt,N["@@transducer/step"]=function(r,t){return r.unshift(t)},N["@@transducer/result"]=function(r){return r.asImmutable()};function cr(r,t,e,n){var i=Object.create(N);return i.size=r,i._head=t,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}var Io;function zr(){return Io||(Io=cr(0))}function qo(r,t,e,n,i,o){return Y(r.size),r.__iterate(function(a,s,u){i?(i=!1,e=a):e=t.call(n,e,a,s,u)},o),e}function Su(r,t){return t}function wu(r,t){return[t,r]}function Ee(r){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!r.apply(this,t)}}function Mo(r){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return-r.apply(this,t)}}function Oo(r,t){return r<t?1:r>t?-1:0}function Eo(r,t){if(r===t)return!0;if(!F(t)||r.size!==void 0&&t.size!==void 0&&r.size!==t.size||r.__hash!==void 0&&t.__hash!==void 0&&r.__hash!==t.__hash||R(r)!==R(t)||X(r)!==X(t)||it(r)!==it(t))return!1;if(r.size===0&&t.size===0)return!0;var e=!Ur(r);if(it(r)){var n=r.entries();return t.every(function(u,f){var c=n.next().value;return c&&G(c[1],u)&&(e||G(c[0],f))})&&n.next().done}var i=!1;if(r.size===void 0)if(t.size===void 0)typeof r.cacheResult=="function"&&r.cacheResult();else{i=!0;var o=r;r=t,t=o}var a=!0,s=t.__iterate(function(u,f){if(e?!r.has(u):i?!G(u,r.get(f,m)):!G(r.get(f,m),u))return a=!1,!1});return a&&r.size===s}var bu=(function(r){function t(e,n,i){if(i===void 0&&(i=1),!(this instanceof t))return new t(e,n,i);if(er(i!==0,"Cannot step a Range by 0"),er(e!==void 0,"You must define a start value when using Range"),er(n!==void 0,"You must define an end value when using Range"),i=Math.abs(i),n<e&&(i=-i),this._start=e,this._end=n,this._step=i,this.size=Math.max(0,Math.ceil((n-e)/i-1)+1),this.size===0){if(Te)return Te;Te=this}}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.size===0?"Range []":"Range [ "+this._start+"..."+this._end+(this._step!==1?" by "+this._step:"")+" ]"},t.prototype.get=function(n,i){return this.has(n)?this._start+yt(this,n)*this._step:i},t.prototype.includes=function(n){var i=(n-this._start)/this._step;return i>=0&&i<this.size&&i===Math.floor(i)},t.prototype.slice=function(n,i){return wr(n,i,this.size)?this:(n=Vt(n,this.size),i=br(i,this.size),i<=n?new t(0,0):new t(this.get(n,this._end),this.get(i,this._end),this._step))},t.prototype.indexOf=function(n){var i=n-this._start;if(i%this._step===0){var o=i/this._step;if(o>=0&&o<this.size)return o}return-1},t.prototype.lastIndexOf=function(n){return this.indexOf(n)},t.prototype.__iterate=function(n,i){for(var o=this.size,a=this._step,s=i?this._start+(o-1)*a:this._start,u=0;u!==o&&n(s,i?o-++u:u++,this)!==!1;)s+=i?-a:a;return u},t.prototype.__iterator=function(n,i){var o=this.size,a=this._step,s=i?this._start+(o-1)*a:this._start,u=0;return new S(function(){if(u===o)return L();var f=s;return s+=i?-a:a,z(n,i?o-++u:u++,f)})},t.prototype.equals=function(n){return n instanceof t?this._start===n._start&&this._end===n._end&&this._step===n._step:Eo(this,n)},t})(rt),Te,To="@@__IMMUTABLE_SET__@@";function Re(r){return!!(r&&r[To])}var ut=(function(r){function t(e){return e==null?hr():Re(e)&&!it(e)?e:hr().withMutations(function(n){var i=r(e);Y(i.size),i.forEach(function(o){return n.add(o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(n){return this(V(n).keySeq())},t.intersect=function(n){return n=B(n).toArray(),n.length?k.intersect.apply(t(n.pop()),n):hr()},t.union=function(n){return n=B(n).toArray(),n.length?k.union.apply(t(n.pop()),n):hr()},t.prototype.toString=function(){return this.__toString("Set {","}")},t.prototype.has=function(n){return this._map.has(n)},t.prototype.add=function(n){return Ar(this,this._map.set(n,n))},t.prototype.remove=function(n){return Ar(this,this._map.remove(n))},t.prototype.clear=function(){return Ar(this,this._map.clear())},t.prototype.map=function(n,i){var o=this,a=!1,s=Ar(this,this._map.mapEntries(function(u){var f=u[1],c=n.call(i,f,f,o);return c!==f&&(a=!0),[c,c]},i));return a?s:this},t.prototype.union=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];return n=n.filter(function(o){return o.size!==0}),n.length===0?this:this.size===0&&!this.__ownerID&&n.length===1?this.constructor(n[0]):this.withMutations(function(o){for(var a=0;a<n.length;a++)typeof n[a]=="string"?o.add(n[a]):r(n[a]).forEach(function(s){return o.add(s)})})},t.prototype.intersect=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(n.length===0)return this;n=n.map(function(a){return r(a)});var o=[];return this.forEach(function(a){n.every(function(s){return s.includes(a)})||o.push(a)}),this.withMutations(function(a){o.forEach(function(s){a.remove(s)})})},t.prototype.subtract=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(n.length===0)return this;n=n.map(function(a){return r(a)});var o=[];return this.forEach(function(a){n.some(function(s){return s.includes(a)})&&o.push(a)}),this.withMutations(function(a){o.forEach(function(s){a.remove(s)})})},t.prototype.sort=function(n){return _r(Lt(this,n))},t.prototype.sortBy=function(n,i){return _r(Lt(this,i,n))},t.prototype.wasAltered=function(){return this._map.wasAltered()},t.prototype.__iterate=function(n,i){var o=this;return this._map.__iterate(function(a){return n(a,a,o)},i)},t.prototype.__iterator=function(n,i){return this._map.__iterator(n,i)},t.prototype.__ensureOwner=function(n){if(n===this.__ownerID)return this;var i=this._map.__ensureOwner(n);return n?this.__make(i,n):this.size===0?this.__empty():(this.__ownerID=n,this._map=i,this)},t})(Ct);ut.isSet=Re;var k=ut.prototype;k[To]=!0,k[Xt]=k.remove,k.merge=k.concat=k.union,k.withMutations=rr,k.asImmutable=Zt,k["@@transducer/init"]=k.asMutable=Qt,k["@@transducer/step"]=function(r,t){return r.add(t)},k["@@transducer/result"]=function(r){return r.asImmutable()},k.__empty=hr,k.__make=Ro;function Ar(r,t){return r.__ownerID?(r.size=t.size,r._map=t,r):t===r._map?r:t.size===0?r.__empty():r.__make(t)}function Ro(r,t){var e=Object.create(k);return e.size=r?r.size:0,e._map=r,e.__ownerID=t,e}var zo;function hr(){return zo||(zo=Ro(st()))}function Ao(r,t,e){for(var n=ho(t),i=0;i!==n.length;)if(r=po(r,n[i++],m),r===m)return e;return r}function Co(r,t){return Ao(this,r,t)}function Iu(r,t){return Ao(r,t,m)!==m}function qu(r){return Iu(this,r)}function $o(){Y(this.size);var r={};return this.__iterate(function(t,e){r[e]=t}),r}function Cr(r){if(!r||typeof r!="object")return r;if(!F(r)){if(!St(r))return r;r=D(r)}if(R(r)){var t={};return r.__iterate(function(n,i){t[i]=Cr(n)}),t}var e=[];return r.__iterate(function(n){e.push(Cr(n))}),e}function Mu(r){if(r.size===1/0)return 0;var t=it(r),e=R(r),n=t?1:0;return r.__iterate(e?t?function(i,o){n=31*n+ko(W(i),W(o))|0}:function(i,o){n=n+ko(W(i),W(o))|0}:t?function(i){n=31*n+W(i)|0}:function(i){n=n+W(i)|0}),Ou(r.size,n)}function Ou(r,t){return t=tr(t,3432918353),t=tr(t<<15|t>>>-15,461845907),t=tr(t<<13|t>>>-13,5),t=(t+3864292196|0)^r,t=tr(t^t>>>16,2246822507),t=tr(t^t>>>13,3266489909),t=Ir(t^t>>>16),t}function ko(r,t){return r^t+2654435769+(r<<6)+(r>>2)|0}function Tt(r,t){var e=function(n){r.prototype[n]=t[n]};return Object.keys(t).forEach(e),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(e),r}B.Iterator=S,Tt(B,{toArray:function(){Y(this.size);var t=new Array(this.size||0),e=R(this),n=0;return this.__iterate(function(i,o){t[n++]=e?[o,i]:i}),t},toIndexedSeq:function(){return new Ni(this)},toJS:function(){return Cr(this)},toKeyedSeq:function(){return new qr(this,!0)},toMap:function(){return J(this.toKeyedSeq())},toObject:$o,toOrderedMap:function(){return _t(this.toKeyedSeq())},toOrderedSet:function(){return _r(R(this)?this.valueSeq():this)},toSet:function(){return ut(R(this)?this.valueSeq():this)},toSetSeq:function(){return new Di(this)},toSeq:function(){return X(this)?this.toIndexedSeq():R(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Oe(R(this)?this.valueSeq():this)},toList:function(){return Tr(R(this)?this.valueSeq():this)},toString:function(){return"[Collection]"},__toString:function(t,e){return this.size===0?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return O(this,Zs(this,t))},includes:function(t){return this.some(function(e){return G(e,t)})},entries:function(){return this.__iterator(H)},every:function(t,e){Y(this.size);var n=!0;return this.__iterate(function(i,o,a){if(!t.call(e,i,o,a))return n=!1,!1}),n},filter:function(t,e){return O(this,Ki(this,t,e,!0))},partition:function(t,e){return Js(this,t,e)},find:function(t,e,n){var i=this.findEntry(t,e);return i?i[1]:n},forEach:function(t,e){return Y(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){Y(this.size),t=t!==void 0?""+t:",";var e="",n=!0;return this.__iterate(function(i){n?n=!1:e+=t,e+=i!=null?i.toString():""}),e},keys:function(){return this.__iterator($t)},map:function(t,e){return O(this,Hi(this,t,e))},reduce:function(t,e,n){return qo(this,t,e,n,arguments.length<2,!1)},reduceRight:function(t,e,n){return qo(this,t,e,n,arguments.length<2,!0)},reverse:function(){return O(this,oe(this,!0))},slice:function(t,e){return O(this,ae(this,t,e,!0))},some:function(t,e){Y(this.size);var n=!1;return this.__iterate(function(i,o,a){if(t.call(e,i,o,a))return n=!0,!1}),n},sort:function(t){return O(this,Lt(this,t))},values:function(){return this.__iterator(U)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return this.size!==void 0?this.size===0:!this.some(function(){return!0})},count:function(t,e){return kt(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return Gs(this,t,e)},equals:function(t){return Eo(this,t)},entrySeq:function(){var t=this;if(t._cache)return new xt(t._cache);var e=t.toSeq().map(wu).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(Ee(t),e)},findEntry:function(t,e,n){var i=n;return this.__iterate(function(o,a,s){if(t.call(e,o,a,s))return i=[a,o],!1}),i},findKey:function(t,e){var n=this.findEntry(t,e);return n&&n[0]},findLast:function(t,e,n){return this.toKeyedSeq().reverse().find(t,e,n)},findLastEntry:function(t,e,n){return this.toKeyedSeq().reverse().findEntry(t,e,n)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(t){return this.find(Ei,null,t)},flatMap:function(t,e){return O(this,Qs(this,t,e))},flatten:function(t){return O(this,Gi(this,t,!0))},fromEntrySeq:function(){return new Fi(this)},get:function(t,e){return this.find(function(n,i){return G(i,t)},void 0,e)},getIn:Co,groupBy:function(t,e){return Ys(this,t,e)},has:function(t){return this.get(t,m)!==m},hasIn:qu,isSubset:function(t){return t=typeof t.includes=="function"?t:B(t),this.every(function(e){return t.includes(e)})},isSuperset:function(t){return t=typeof t.isSubset=="function"?t:B(t),t.isSubset(this)},keyOf:function(t){return this.findKey(function(e){return G(e,t)})},keySeq:function(){return this.toSeq().map(Su).toIndexedSeq()},last:function(t){return this.toSeq().reverse().first(t)},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return Mr(this,t)},maxBy:function(t,e){return Mr(this,e,t)},min:function(t){return Mr(this,t?Mo(t):Oo)},minBy:function(t,e){return Mr(this,e?Mo(e):Oo,t)},rest:function(){return this.slice(1)},skip:function(t){return t===0?this:this.slice(Math.max(0,t))},skipLast:function(t){return t===0?this:this.slice(0,-Math.max(0,t))},skipWhile:function(t,e){return O(this,Wi(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(Ee(t),e)},sortBy:function(t,e){return O(this,Lt(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return this.slice(-Math.max(0,t))},takeWhile:function(t,e){return O(this,Xs(this,t,e))},takeUntil:function(t,e){return this.takeWhile(Ee(t),e)},update:function(t){return t(this)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=Mu(this))}});var j=B.prototype;j[Ii]=!0,j[mr]=j.values,j.toJSON=j.toArray,j.__toStringMapper=or,j.inspect=j.toSource=function(){return this.toString()},j.chain=j.flatMap,j.contains=j.includes,Tt(V,{flip:function(){return O(this,Ui(this))},mapEntries:function(t,e){var n=this,i=0;return O(this,this.toSeq().map(function(o,a){return t.call(e,[a,o],i++,n)}).fromEntrySeq())},mapKeys:function(t,e){var n=this;return O(this,this.toSeq().flip().map(function(i,o){return t.call(e,i,o,n)}).flip())}});var pr=V.prototype;pr[gr]=!0,pr[mr]=j.entries,pr.toJSON=$o,pr.__toStringMapper=function(r,t){return or(t)+": "+or(r)},Tt(Mt,{toKeyedSeq:function(){return new qr(this,!1)},filter:function(t,e){return O(this,Ki(this,t,e,!1))},findIndex:function(t,e){var n=this.findEntry(t,e);return n?n[0]:-1},indexOf:function(t){var e=this.keyOf(t);return e===void 0?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return e===void 0?-1:e},reverse:function(){return O(this,oe(this,!1))},slice:function(t,e){return O(this,ae(this,t,e,!1))},splice:function(t,e){var n=arguments.length;if(e=Math.max(e||0,0),n===0||n===2&&!e)return this;t=Vt(t,t<0?this.count():this.size);var i=this.slice(0,t);return O(this,n===1?i:i.concat(at(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.findLastEntry(t,e);return n?n[0]:-1},first:function(t){return this.get(0,t)},flatten:function(t){return O(this,Gi(this,t,!1))},get:function(t,e){return t=yt(this,t),t<0||this.size===1/0||this.size!==void 0&&t>this.size?e:this.find(function(n,i){return i===t},void 0,e)},has:function(t){return t=yt(this,t),t>=0&&(this.size!==void 0?this.size===1/0||t<this.size:this.indexOf(t)!==-1)},interpose:function(t){return O(this,tu(this,t))},interleave:function(){var t=[this].concat(at(arguments)),e=Or(this.toSeq(),rt.of,t),n=e.flatten(!0);return e.size&&(n.size=e.size*t.length),O(this,n)},keySeq:function(){return bu(0,this.size)},last:function(t){return this.get(-1,t)},skipWhile:function(t,e){return O(this,Wi(this,t,e,!1))},zip:function(){var t=[this].concat(at(arguments));return O(this,Or(this,Bo,t))},zipAll:function(){var t=[this].concat(at(arguments));return O(this,Or(this,Bo,t,!0))},zipWith:function(t){var e=at(arguments);return e[0]=this,O(this,Or(this,t,e))}});var Ut=Mt.prototype;Ut[vt]=!0,Ut[gt]=!0,Tt(Ct,{get:function(t,e){return this.has(t)?t:e},includes:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}});var Ht=Ct.prototype;Ht.has=j.includes,Ht.contains=Ht.includes,Ht.keys=Ht.values,Tt(mt,pr),Tt(rt,Ut),Tt(jt,Ht);function Bo(){return at(arguments)}function jo(r){return Re(r)&&it(r)}var _r=(function(r){function t(e){return e==null?ze():jo(e)?e:ze().withMutations(function(n){var i=Ct(e);Y(i.size),i.forEach(function(o){return n.add(o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(n){return this(V(n).keySeq())},t.prototype.toString=function(){return this.__toString("OrderedSet {","}")},t})(ut);_r.isOrderedSet=jo;var Rt=_r.prototype;Rt[gt]=!0,Rt.zip=Ut.zip,Rt.zipWith=Ut.zipWith,Rt.zipAll=Ut.zipAll,Rt.__empty=ze,Rt.__make=xo;function xo(r,t){var e=Object.create(Rt);return e.size=r?r.size:0,e._map=r,e.__ownerID=t,e}var Lo;function ze(){return Lo||(Lo=xo(fr()))}function Eu(r){if(Ot(r))throw new Error("Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.");if(nt(r))throw new Error("Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.");if(r===null||typeof r!="object")throw new Error("Can not call `Record` with a non-object as default values. Use a plain javascript object instead.")}var C=function(t,e){var n;Eu(t);var i=function(s){var u=this;if(s instanceof i)return s;if(!(this instanceof i))return new i(s);if(!n){n=!0;var f=Object.keys(t),c=o._indices={};o._name=e,o._keys=f,o._defaultValues=t;for(var h=0;h<f.length;h++){var p=f[h];c[p]=h,o[p]?typeof console=="object"&&console.warn&&console.warn("Cannot define "+Ce(this)+' with property "'+p+'" since that property name is part of the Record API.'):Tu(o,p)}}return this.__ownerID=void 0,this._values=Tr().withMutations(function(_){_.setSize(u._keys.length),V(s).forEach(function(d,v){_.set(u._indices[v],d===u._defaultValues[v]?void 0:d)})}),this},o=i.prototype=Object.create(E);return o.constructor=i,e&&(i.displayName=e),i};C.prototype.toString=function(){for(var t=Ce(this)+" { ",e=this._keys,n,i=0,o=e.length;i!==o;i++)n=e[i],t+=(i?", ":"")+n+": "+or(this.get(n));return t+" }"},C.prototype.equals=function(t){return this===t||Ot(t)&&Kt(this).equals(Kt(t))},C.prototype.hashCode=function(){return Kt(this).hashCode()},C.prototype.has=function(t){return this._indices.hasOwnProperty(t)},C.prototype.get=function(t,e){if(!this.has(t))return e;var n=this._indices[t],i=this._values.get(n);return i===void 0?this._defaultValues[t]:i},C.prototype.set=function(t,e){if(this.has(t)){var n=this._values.set(this._indices[t],e===this._defaultValues[t]?void 0:e);if(n!==this._values&&!this.__ownerID)return Ae(this,n)}return this},C.prototype.remove=function(t){return this.set(t)},C.prototype.clear=function(){var t=this._values.clear().setSize(this._keys.length);return this.__ownerID?this:Ae(this,t)},C.prototype.wasAltered=function(){return this._values.wasAltered()},C.prototype.toSeq=function(){return Kt(this)},C.prototype.toJS=function(){return Cr(this)},C.prototype.entries=function(){return this.__iterator(H)},C.prototype.__iterator=function(t,e){return Kt(this).__iterator(t,e)},C.prototype.__iterate=function(t,e){return Kt(this).__iterate(t,e)},C.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._values.__ensureOwner(t);return t?Ae(this,e,t):(this.__ownerID=t,this._values=e,this)},C.isRecord=Ot,C.getDescriptiveName=Ce;var E=C.prototype;E[zi]=!0,E[Xt]=E.remove,E.deleteIn=E.removeIn=be,E.getIn=Co,E.hasIn=j.hasIn,E.merge=Qi,E.mergeWith=to,E.mergeIn=pe,E.mergeDeep=eo,E.mergeDeepWith=no,E.mergeDeepIn=he,E.setIn=_e,E.update=de,E.updateIn=le,E.withMutations=rr,E.asMutable=Qt,E.asImmutable=Zt,E[mr]=E.entries,E.toJSON=E.toObject=j.toObject,E.inspect=E.toSource=function(){return this.toString()};function Ae(r,t,e){var n=Object.create(Object.getPrototypeOf(r));return n._values=t,n.__ownerID=e,n}function Ce(r){return r.constructor.displayName||r.constructor.name||"Record"}function Kt(r){return Vr(r._keys.map(function(t){return[t,r.get(t)]}))}function Tu(r,t){try{Object.defineProperty(r,t,{get:function(){return this.get(t)},set:function(e){er(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}catch{}}var $r=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ru(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var $e,Po;function No(){if(Po)return $e;Po=1;function r(t,e){for(var n=-1,i=e.length,o=t.length;++n<i;)t[o+n]=e[n];return t}return $e=r,$e}var ke,Do;function zu(){if(Do)return ke;Do=1;var r=typeof $r=="object"&&$r&&$r.Object===Object&&$r;return ke=r,ke}var Be,Fo;function je(){if(Fo)return Be;Fo=1;var r=zu(),t=typeof self=="object"&&self&&self.Object===Object&&self,e=r||t||Function("return this")();return Be=e,Be}var xe,Uo;function kr(){if(Uo)return xe;Uo=1;var r=je(),t=r.Symbol;return xe=t,xe}var Le,Ho;function Au(){if(Ho)return Le;Ho=1;var r=kr(),t=Object.prototype,e=t.hasOwnProperty,n=t.toString,i=r?r.toStringTag:void 0;function o(a){var s=e.call(a,i),u=a[i];try{a[i]=void 0;var f=!0}catch{}var c=n.call(a);return f&&(s?a[i]=u:delete a[i]),c}return Le=o,Le}var Pe,Ko;function Cu(){if(Ko)return Pe;Ko=1;var r=Object.prototype,t=r.toString;function e(n){return t.call(n)}return Pe=e,Pe}var Ne,Wo;function Br(){if(Wo)return Ne;Wo=1;var r=kr(),t=Au(),e=Cu(),n="[object Null]",i="[object Undefined]",o=r?r.toStringTag:void 0;function a(s){return s==null?s===void 0?i:n:o&&o in Object(s)?t(s):e(s)}return Ne=a,Ne}var De,Go;function jr(){if(Go)return De;Go=1;function r(t){return t!=null&&typeof t=="object"}return De=r,De}var Fe,Yo;function $u(){if(Yo)return Fe;Yo=1;var r=Br(),t=jr(),e="[object Arguments]";function n(i){return t(i)&&r(i)==e}return Fe=n,Fe}var Ue,Jo;function Xo(){if(Jo)return Ue;Jo=1;var r=$u(),t=jr(),e=Object.prototype,n=e.hasOwnProperty,i=e.propertyIsEnumerable,o=r((function(){return arguments})())?r:function(a){return t(a)&&n.call(a,"callee")&&!i.call(a,"callee")};return Ue=o,Ue}var He,Vo;function It(){if(Vo)return He;Vo=1;var r=Array.isArray;return He=r,He}var Ke,Zo;function ku(){if(Zo)return Ke;Zo=1;var r=kr(),t=Xo(),e=It(),n=r?r.isConcatSpreadable:void 0;function i(o){return e(o)||t(o)||!!(n&&o&&o[n])}return Ke=i,Ke}var We,Qo;function Bu(){if(Qo)return We;Qo=1;var r=No(),t=ku();function e(n,i,o,a,s){var u=-1,f=n.length;for(o||(o=t),s||(s=[]);++u<f;){var c=n[u];i>0&&o(c)?i>1?e(c,i-1,o,a,s):r(s,c):a||(s[s.length]=c)}return s}return We=e,We}var Ge,ta;function ju(){if(ta)return Ge;ta=1;function r(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}return Ge=r,Ge}var Ye,ra;function xu(){if(ra)return Ye;ra=1;var r=No(),t=Bu(),e=ju(),n=It();function i(){var o=arguments.length;if(!o)return[];for(var a=Array(o-1),s=arguments[0],u=o;u--;)a[u-1]=arguments[u];return r(n(s)?e(s):[s],t(a,1))}return Ye=i,Ye}xu();var Je,ea;function Lu(){if(ea)return Je;ea=1;function r(t,e){return t!=null&&e in Object(t)}return Je=r,Je}var Xe,na;function xr(){if(na)return Xe;na=1;var r=Br(),t=jr(),e="[object Symbol]";function n(i){return typeof i=="symbol"||t(i)&&r(i)==e}return Xe=n,Xe}var Ve,ia;function Pu(){if(ia)return Ve;ia=1;var r=It(),t=xr(),e=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;function i(o,a){if(r(o))return!1;var s=typeof o;return s=="number"||s=="symbol"||s=="boolean"||o==null||t(o)?!0:n.test(o)||!e.test(o)||a!=null&&o in Object(a)}return Ve=i,Ve}var Ze,oa;function Qe(){if(oa)return Ze;oa=1;function r(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}return Ze=r,Ze}var tn,aa;function Nu(){if(aa)return tn;aa=1;var r=Br(),t=Qe(),e="[object AsyncFunction]",n="[object Function]",i="[object GeneratorFunction]",o="[object Proxy]";function a(s){if(!t(s))return!1;var u=r(s);return u==n||u==i||u==e||u==o}return tn=a,tn}var rn,sa;function Du(){if(sa)return rn;sa=1;var r=je(),t=r["__core-js_shared__"];return rn=t,rn}var en,ua;function Fu(){if(ua)return en;ua=1;var r=Du(),t=(function(){var n=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""})();function e(n){return!!t&&t in n}return en=e,en}var nn,fa;function Uu(){if(fa)return nn;fa=1;var r=Function.prototype,t=r.toString;function e(n){if(n!=null){try{return t.call(n)}catch{}try{return n+""}catch{}}return""}return nn=e,nn}var on,ca;function Hu(){if(ca)return on;ca=1;var r=Nu(),t=Fu(),e=Qe(),n=Uu(),i=/[\\^$.*+?()[\]{}|]/g,o=/^\[object .+?Constructor\]$/,a=Function.prototype,s=Object.prototype,u=a.toString,f=s.hasOwnProperty,c=RegExp("^"+u.call(f).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function h(p){if(!e(p)||t(p))return!1;var _=r(p)?c:o;return _.test(n(p))}return on=h,on}var an,ha;function Ku(){if(ha)return an;ha=1;function r(t,e){return t?.[e]}return an=r,an}var sn,pa;function _a(){if(pa)return sn;pa=1;var r=Hu(),t=Ku();function e(n,i){var o=t(n,i);return r(o)?o:void 0}return sn=e,sn}var un,da;function Lr(){if(da)return un;da=1;var r=_a(),t=r(Object,"create");return un=t,un}var fn,la;function Wu(){if(la)return fn;la=1;var r=Lr();function t(){this.__data__=r?r(null):{},this.size=0}return fn=t,fn}var cn,va;function Gu(){if(va)return cn;va=1;function r(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}return cn=r,cn}var hn,ya;function Yu(){if(ya)return hn;ya=1;var r=Lr(),t="__lodash_hash_undefined__",e=Object.prototype,n=e.hasOwnProperty;function i(o){var a=this.__data__;if(r){var s=a[o];return s===t?void 0:s}return n.call(a,o)?a[o]:void 0}return hn=i,hn}var pn,ga;function Ju(){if(ga)return pn;ga=1;var r=Lr(),t=Object.prototype,e=t.hasOwnProperty;function n(i){var o=this.__data__;return r?o[i]!==void 0:e.call(o,i)}return pn=n,pn}var _n,ma;function Xu(){if(ma)return _n;ma=1;var r=Lr(),t="__lodash_hash_undefined__";function e(n,i){var o=this.__data__;return this.size+=this.has(n)?0:1,o[n]=r&&i===void 0?t:i,this}return _n=e,_n}var dn,Sa;function Vu(){if(Sa)return dn;Sa=1;var r=Wu(),t=Gu(),e=Yu(),n=Ju(),i=Xu();function o(a){var s=-1,u=a==null?0:a.length;for(this.clear();++s<u;){var f=a[s];this.set(f[0],f[1])}}return o.prototype.clear=r,o.prototype.delete=t,o.prototype.get=e,o.prototype.has=n,o.prototype.set=i,dn=o,dn}var ln,wa;function Zu(){if(wa)return ln;wa=1;function r(){this.__data__=[],this.size=0}return ln=r,ln}var vn,ba;function Qu(){if(ba)return vn;ba=1;function r(t,e){return t===e||t!==t&&e!==e}return vn=r,vn}var yn,Ia;function Pr(){if(Ia)return yn;Ia=1;var r=Qu();function t(e,n){for(var i=e.length;i--;)if(r(e[i][0],n))return i;return-1}return yn=t,yn}var gn,qa;function tf(){if(qa)return gn;qa=1;var r=Pr(),t=Array.prototype,e=t.splice;function n(i){var o=this.__data__,a=r(o,i);if(a<0)return!1;var s=o.length-1;return a==s?o.pop():e.call(o,a,1),--this.size,!0}return gn=n,gn}var mn,Ma;function rf(){if(Ma)return mn;Ma=1;var r=Pr();function t(e){var n=this.__data__,i=r(n,e);return i<0?void 0:n[i][1]}return mn=t,mn}var Sn,Oa;function ef(){if(Oa)return Sn;Oa=1;var r=Pr();function t(e){return r(this.__data__,e)>-1}return Sn=t,Sn}var wn,Ea;function nf(){if(Ea)return wn;Ea=1;var r=Pr();function t(e,n){var i=this.__data__,o=r(i,e);return o<0?(++this.size,i.push([e,n])):i[o][1]=n,this}return wn=t,wn}var bn,Ta;function of(){if(Ta)return bn;Ta=1;var r=Zu(),t=tf(),e=rf(),n=ef(),i=nf();function o(a){var s=-1,u=a==null?0:a.length;for(this.clear();++s<u;){var f=a[s];this.set(f[0],f[1])}}return o.prototype.clear=r,o.prototype.delete=t,o.prototype.get=e,o.prototype.has=n,o.prototype.set=i,bn=o,bn}var In,Ra;function af(){if(Ra)return In;Ra=1;var r=_a(),t=je(),e=r(t,"Map");return In=e,In}var qn,za;function sf(){if(za)return qn;za=1;var r=Vu(),t=of(),e=af();function n(){this.size=0,this.__data__={hash:new r,map:new(e||t),string:new r}}return qn=n,qn}var Mn,Aa;function uf(){if(Aa)return Mn;Aa=1;function r(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}return Mn=r,Mn}var On,Ca;function Nr(){if(Ca)return On;Ca=1;var r=uf();function t(e,n){var i=e.__data__;return r(n)?i[typeof n=="string"?"string":"hash"]:i.map}return On=t,On}var En,$a;function ff(){if($a)return En;$a=1;var r=Nr();function t(e){var n=r(this,e).delete(e);return this.size-=n?1:0,n}return En=t,En}var Tn,ka;function cf(){if(ka)return Tn;ka=1;var r=Nr();function t(e){return r(this,e).get(e)}return Tn=t,Tn}var Rn,Ba;function hf(){if(Ba)return Rn;Ba=1;var r=Nr();function t(e){return r(this,e).has(e)}return Rn=t,Rn}var zn,ja;function pf(){if(ja)return zn;ja=1;var r=Nr();function t(e,n){var i=r(this,e),o=i.size;return i.set(e,n),this.size+=i.size==o?0:1,this}return zn=t,zn}var An,xa;function _f(){if(xa)return An;xa=1;var r=sf(),t=ff(),e=cf(),n=hf(),i=pf();function o(a){var s=-1,u=a==null?0:a.length;for(this.clear();++s<u;){var f=a[s];this.set(f[0],f[1])}}return o.prototype.clear=r,o.prototype.delete=t,o.prototype.get=e,o.prototype.has=n,o.prototype.set=i,An=o,An}var Cn,La;function df(){if(La)return Cn;La=1;var r=_f(),t="Expected a function";function e(n,i){if(typeof n!="function"||i!=null&&typeof i!="function")throw new TypeError(t);var o=function(){var a=arguments,s=i?i.apply(this,a):a[0],u=o.cache;if(u.has(s))return u.get(s);var f=n.apply(this,a);return o.cache=u.set(s,f)||u,f};return o.cache=new(e.Cache||r),o}return e.Cache=r,Cn=e,Cn}var $n,Pa;function lf(){if(Pa)return $n;Pa=1;var r=df(),t=500;function e(n){var i=r(n,function(a){return o.size===t&&o.clear(),a}),o=i.cache;return i}return $n=e,$n}var kn,Na;function vf(){if(Na)return kn;Na=1;var r=lf(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,e=/\\(\\)?/g,n=r(function(i){var o=[];return i.charCodeAt(0)===46&&o.push(""),i.replace(t,function(a,s,u,f){o.push(u?f.replace(e,"$1"):s||a)}),o});return kn=n,kn}var Bn,Da;function yf(){if(Da)return Bn;Da=1;function r(t,e){for(var n=-1,i=t==null?0:t.length,o=Array(i);++n<i;)o[n]=e(t[n],n,t);return o}return Bn=r,Bn}var jn,Fa;function xn(){if(Fa)return jn;Fa=1;var r=kr(),t=yf(),e=It(),n=xr(),i=r?r.prototype:void 0,o=i?i.toString:void 0;function a(s){if(typeof s=="string")return s;if(e(s))return t(s,a)+"";if(n(s))return o?o.call(s):"";var u=s+"";return u=="0"&&1/s==-1/0?"-0":u}return jn=a,jn}var Ln,Ua;function Pn(){if(Ua)return Ln;Ua=1;var r=xn();function t(e){return e==null?"":r(e)}return Ln=t,Ln}var Nn,Ha;function gf(){if(Ha)return Nn;Ha=1;var r=It(),t=Pu(),e=vf(),n=Pn();function i(o,a){return r(o)?o:t(o,a)?[o]:e(n(o))}return Nn=i,Nn}var Dn,Ka;function mf(){if(Ka)return Dn;Ka=1;var r=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function e(n,i){var o=typeof n;return i=i??r,!!i&&(o=="number"||o!="symbol"&&t.test(n))&&n>-1&&n%1==0&&n<i}return Dn=e,Dn}var Fn,Wa;function Sf(){if(Wa)return Fn;Wa=1;var r=9007199254740991;function t(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=r}return Fn=t,Fn}var Un,Ga;function wf(){if(Ga)return Un;Ga=1;var r=xr();function t(e){if(typeof e=="string"||r(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}return Un=t,Un}var Hn,Ya;function bf(){if(Ya)return Hn;Ya=1;var r=gf(),t=Xo(),e=It(),n=mf(),i=Sf(),o=wf();function a(s,u,f){u=r(u,s);for(var c=-1,h=u.length,p=!1;++c<h;){var _=o(u[c]);if(!(p=s!=null&&f(s,_)))break;s=s[_]}return p||++c!=h?p:(h=s==null?0:s.length,!!h&&i(h)&&n(_,h)&&(e(s)||t(s)))}return Hn=a,Hn}var Kn,Ja;function If(){if(Ja)return Kn;Ja=1;var r=Lu(),t=bf();function e(n,i){return n!=null&&t(n,i,r)}return Kn=e,Kn}If();var Wn,Xa;function qf(){if(Xa)return Wn;Xa=1;var r=Math.max,t=Math.min;function e(n,i,o){return n>=t(i,o)&&n<r(i,o)}return Wn=e,Wn}var Gn,Va;function Mf(){if(Va)return Gn;Va=1;var r=/\s/;function t(e){for(var n=e.length;n--&&r.test(e.charAt(n)););return n}return Gn=t,Gn}var Yn,Za;function Of(){if(Za)return Yn;Za=1;var r=Mf(),t=/^\s+/;function e(n){return n&&n.slice(0,r(n)+1).replace(t,"")}return Yn=e,Yn}var Jn,Qa;function ts(){if(Qa)return Jn;Qa=1;var r=Of(),t=Qe(),e=xr(),n=NaN,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,a=/^0o[0-7]+$/i,s=parseInt;function u(f){if(typeof f=="number")return f;if(e(f))return n;if(t(f)){var c=typeof f.valueOf=="function"?f.valueOf():f;f=t(c)?c+"":c}if(typeof f!="string")return f===0?f:+f;f=r(f);var h=o.test(f);return h||a.test(f)?s(f.slice(2),h?2:8):i.test(f)?n:+f}return Jn=u,Jn}var Xn,rs;function es(){if(rs)return Xn;rs=1;var r=ts(),t=1/0,e=17976931348623157e292;function n(i){if(!i)return i===0?i:0;if(i=r(i),i===t||i===-t){var o=i<0?-1:1;return o*e}return i===i?i:0}return Xn=n,Xn}var Vn,ns;function Ef(){if(ns)return Vn;ns=1;var r=qf(),t=es(),e=ts();function n(i,o,a){return o=t(o),a===void 0?(a=o,o=0):a=t(a),i=e(i),r(i,o,a)}return Vn=n,Vn}var Tf=Ef();const Rf=Ru(Tf);var Zn,is;function Qn(){if(is)return Zn;is=1;var r=es();function t(e){var n=r(e),i=n%1;return n===n?i?n-i:n:0}return Zn=t,Zn}var ti,os;function zf(){if(os)return ti;os=1;var r=Qn();function t(e){return typeof e=="number"&&e==r(e)}return ti=t,ti}zf();var ri,as;function ss(){if(as)return ri;as=1;function r(t,e,n){var i=-1,o=t.length;e<0&&(e=-e>o?0:o+e),n=n>o?o:n,n<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var a=Array(o);++i<o;)a[i]=t[i+e];return a}return ri=r,ri}var ei,us;function Af(){if(us)return ei;us=1;var r=ss(),t=Qn();function e(n,i,o){return n&&n.length?(i=o||i===void 0?1:t(i),r(n,0,i<0?0:i)):[]}return ei=e,ei}Af();const dr="black",lr="white",Q=null;class fs extends C({dimensions:19,moves:J()},"Board"){constructor(t=19,...e){super({dimensions:t,moves:J(e.map(n=>[n.coordinate,n.color]))})}toMap(t=null){const e={[dr]:dr,[lr]:lr,[Q]:Q},n=t||e;return Array(this.dimensions).fill(Q).map((i,o)=>Array(this.dimensions).fill(Q).map((a,s)=>{const u=this.moves.get(et(s,o),Q);return n[u]||e[u]}))}}function cs(...r){return Reflect.construct(fs,r)}cs.prototype=fs.prototype;class hs extends C({x:0,y:0},"Coordinate"){constructor(t,e){super({x:t,y:e})}}function et(...r){return Reflect.construct(hs,r)}et.prototype=hs.prototype;class ps extends C({coordinate:et(),color:Q},"Move"){constructor(t,e){super({coordinate:t,color:e})}}function _s(...r){return Reflect.construct(ps,r)}_s.prototype=ps.prototype,et(4,4),et(6,6),et(9,9);function Cf(r,t){const{x:e,y:n}=t,i=o=>Rf(o,r.dimensions);return ut.of(et(e,n+1),et(e,n-1),et(e+1,n),et(e-1,n)).filter(o=>i(o.x)&&i(o.y))}function Dr(r,t,e){const n=e===void 0?r.moves.get(t,Q):e;return Cf(r,t).filter(i=>r.moves.get(i,Q)===n)}function ds(r,t){let e=ut(),n=ut.of(t);for(;!n.isEmpty();){const i=n.first(),o=Dr(r,i);e=e.add(i),n=n.rest().union(o.subtract(e))}return e}function ni(r){return r===dr?lr:r===lr?dr:Q}function $f(r,t){return ds(r,t).reduce((e,n)=>e.union(Dr(r,n,Q)),ut())}function ii(r,t){return $f(r,t).size}function ls(r,t){const e=ii(r.setIn(["moves",t.coordinate],t.color),t.coordinate)>0,n=Dr(r,t.coordinate,ni(t.color)).some(i=>ii(r,i)===1);return e||n}function kf(r,t){return r.setIn(["moves"],t.reduce((e,n)=>e.delete(n),r.moves))}function Bf(r,t){if(!ls(r,t))throw new Error("Not a valid position");if(r.moves.has(t.coordinate))throw new Error("There is already a stone there");const e=Dr(r,t.coordinate,ni(t.color)).reduce((n,i)=>n.union(ii(r,i)===1?ds(r,i):ut()),ut());return kf(r,e).setIn(["moves",t.coordinate],t.color)}function jf(r,t,e,n=!1){const i=r.moves.get(t,Q);if(!n&&ni(i)===e)throw new Error("There is already a stone there. Pass force=true to override.");return r.setIn(["moves",t],e)}const dt={BLACK:dr,Board:cs,Coordinate:et,EMPTY:Q,Move:_s,WHITE:lr,addMove:Bf,isLegalMove:ls,placeStone:jf};It();var oi,vs;function xf(){if(vs)return oi;vs=1;var r=Br(),t=It(),e=jr(),n="[object String]";function i(o){return typeof o=="string"||!t(o)&&e(o)&&r(o)==n}return oi=i,oi}xf();var ai,ys;function Lf(){if(ys)return ai;ys=1;function r(t,e,n){return t===t&&(n!==void 0&&(t=t<=n?t:n),e!==void 0&&(t=t>=e?t:e)),t}return ai=r,ai}var si,gs;function Pf(){if(gs)return si;gs=1;var r=Lf(),t=xn(),e=Qn(),n=Pn();function i(o,a,s){return o=n(o),s=s==null?0:r(e(s),0,o.length),a=t(a),o.slice(s,s+a.length)==a}return si=i,si}Pf();var ui,ms;function Nf(){if(ms)return ui;ms=1;var r=ss();function t(e,n,i){var o=e.length;return i=i===void 0?o:i,!n&&i>=o?e:r(e,n,i)}return ui=t,ui}var fi,Ss;function Df(){if(Ss)return fi;Ss=1;function r(t,e,n,i){for(var o=t.length,a=n+(i?1:-1);i?a--:++a<o;)if(e(t[a],a,t))return a;return-1}return fi=r,fi}var ci,ws;function Ff(){if(ws)return ci;ws=1;function r(t){return t!==t}return ci=r,ci}var hi,bs;function Uf(){if(bs)return hi;bs=1;function r(t,e,n){for(var i=n-1,o=t.length;++i<o;)if(t[i]===e)return i;return-1}return hi=r,hi}var pi,Is;function Hf(){if(Is)return pi;Is=1;var r=Df(),t=Ff(),e=Uf();function n(i,o,a){return o===o?e(i,o,a):r(i,t,a)}return pi=n,pi}var _i,qs;function Kf(){if(qs)return _i;qs=1;var r=Hf();function t(e,n){for(var i=-1,o=e.length;++i<o&&r(n,e[i],0)>-1;);return i}return _i=t,_i}var di,Ms;function Wf(){if(Ms)return di;Ms=1;function r(t){return t.split("")}return di=r,di}var li,Os;function Gf(){if(Os)return li;Os=1;var r="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+e+n,o="\\ufe0e\\ufe0f",a="\\u200d",s=RegExp("["+a+r+i+o+"]");function u(f){return s.test(f)}return li=u,li}var vi,Es;function Yf(){if(Es)return vi;Es=1;var r="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+e+n,o="\\ufe0e\\ufe0f",a="["+r+"]",s="["+i+"]",u="\\ud83c[\\udffb-\\udfff]",f="(?:"+s+"|"+u+")",c="[^"+r+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",p="[\\ud800-\\udbff][\\udc00-\\udfff]",_="\\u200d",d=f+"?",v="["+o+"]?",w="(?:"+_+"(?:"+[c,h,p].join("|")+")"+v+d+")*",I=v+d+w,y="(?:"+[c+s+"?",s,h,p,a].join("|")+")",l=RegExp(u+"(?="+u+")|"+y+I,"g");function g(A){return A.match(l)||[]}return vi=g,vi}var yi,Ts;function Jf(){if(Ts)return yi;Ts=1;var r=Wf(),t=Gf(),e=Yf();function n(i){return t(i)?e(i):r(i)}return yi=n,yi}var gi,Rs;function Xf(){if(Rs)return gi;Rs=1;var r=xn(),t=Nf(),e=Kf(),n=Jf(),i=Pn(),o=/^\s+/;function a(s,u,f){if(s=i(s),s&&(f||u===void 0))return s.replace(o,"");if(!s||!(u=r(u)))return s;var c=n(s),h=e(c,n(u));return t(c,h).join("")}return gi=a,gi}Xf();const tt=dt.BLACK,mi=dt.Board,vr=dt.Coordinate,yr=dt.EMPTY,zt=dt.Move,ft=dt.WHITE,Wt=dt.addMove,zs=dt.isLegalMove,Vf=dt.placeStone;function Fr(r){return`
1
+ (function(Tt,gt){typeof exports=="object"&&typeof module<"u"?gt(exports):typeof define=="function"&&define.amd?define(["exports"],gt):(Tt=typeof globalThis<"u"?globalThis:Tt||self,gt(Tt.GodashDiagrams={}))})(this,(function(Tt){"use strict";var gt="@@__IMMUTABLE_INDEXED__@@";function tt(r){return!!(r&&r[gt])}var mr="@@__IMMUTABLE_KEYED__@@";function z(r){return!!(r&&r[mr])}function Hr(r){return z(r)||tt(r)}var qi="@@__IMMUTABLE_ITERABLE__@@";function W(r){return!!(r&&r[qi])}var L=function(t){return W(t)?t:H(t)},rt=(function(r){function t(e){return z(e)?e:wt(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t})(L),Rt=(function(r){function t(e){return tt(e)?e:it(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t})(L),jt=(function(r){function t(e){return W(e)&&!Hr(e)?e:Nt(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t})(L);L.Keyed=rt,L.Indexed=Rt,L.Set=jt;var xt=0,G=1,Y=2,Kr=typeof Symbol=="function"&&Symbol.iterator,Mi="@@iterator",Sr=Kr||Mi,S=function(t){this.next=t};S.prototype.toString=function(){return"[Iterator]"},S.KEYS=xt,S.VALUES=G,S.ENTRIES=Y,S.prototype.inspect=S.prototype.toSource=function(){return this.toString()},S.prototype[Sr]=function(){return this};function C(r,t,e,n){var i=r===xt?t:r===G?e:[t,e];return n?n.value=i:n={value:i,done:!1},n}function N(){return{value:void 0,done:!0}}function Oi(r){return Array.isArray(r)?!0:!!wr(r)}function Ei(r){return!!(r&&typeof r.next=="function")}function Wr(r){var t=wr(r);return t&&t.call(r)}function wr(r){var t=r&&(Kr&&r[Kr]||r[Mi]);if(typeof t=="function")return t}function Bs(r){var t=wr(r);return t&&t===r.entries}function js(r){var t=wr(r);return t&&t===r.keys}var Vt="delete",O=5,J=1<<O,D=J-1,m={};function Gr(){return{value:!1}}function et(r){r&&(r.value=!0)}function Yr(){}function Lt(r){return r.size===void 0&&(r.size=r.__iterate(Ti)),r.size}function mt(r,t){if(typeof t!="number"){var e=t>>>0;if(""+e!==t||e===4294967295)return NaN;t=e}return t<0?Lt(r)+t:t}function Ti(){return!0}function br(r,t,e){return(r===0&&!zi(r)||e!==void 0&&r<=-e)&&(t===void 0||e!==void 0&&t>=e)}function Zt(r,t){return Ri(r,t,0)}function Ir(r,t){return Ri(r,t,t)}function Ri(r,t,e){return r===void 0?e:zi(r)?t===1/0?t:Math.max(0,t+r)|0:t===void 0||t===r?r:Math.min(t,r)|0}function zi(r){return r<0||r===0&&1/r===-1/0}var Ci="@@__IMMUTABLE_RECORD__@@";function zt(r){return!!(r&&r[Ci])}function ut(r){return W(r)||zt(r)}var St="@@__IMMUTABLE_ORDERED__@@";function ft(r){return!!(r&&r[St])}var Ai="@@__IMMUTABLE_SEQ__@@";function Jr(r){return!!(r&&r[Ai])}var Pt=Object.prototype.hasOwnProperty;function $i(r){return Array.isArray(r)||typeof r=="string"?!0:r&&typeof r=="object"&&Number.isInteger(r.length)&&r.length>=0&&(r.length===0?Object.keys(r).length===1:r.hasOwnProperty(r.length-1))}var H=(function(r){function t(e){return e==null?Vr():ut(e)?e.toSeq():Ls(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toSeq=function(){return this},t.prototype.toString=function(){return this.__toString("Seq {","}")},t.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},t.prototype.__iterate=function(n,i){var o=this._cache;if(o){for(var a=o.length,s=0;s!==a;){var u=o[i?a-++s:s++];if(n(u[1],u[0],this)===!1)break}return s}return this.__iterateUncached(n,i)},t.prototype.__iterator=function(n,i){var o=this._cache;if(o){var a=o.length,s=0;return new S(function(){if(s===a)return N();var u=o[i?a-++s:s++];return C(n,u[0],u[1])})}return this.__iteratorUncached(n,i)},t})(L),wt=(function(r){function t(e){return e==null?Vr().toKeyedSeq():W(e)?z(e)?e.toSeq():e.fromEntrySeq():zt(e)?e.toSeq():Zr(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toKeyedSeq=function(){return this},t})(H),it=(function(r){function t(e){return e==null?Vr():W(e)?z(e)?e.entrySeq():e.toIndexedSeq():zt(e)?e.toSeq().entrySeq():Bi(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toIndexedSeq=function(){return this},t.prototype.toString=function(){return this.__toString("Seq [","]")},t})(H),Nt=(function(r){function t(e){return(W(e)&&!Hr(e)?e:it(e)).toSetSeq()}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return t(arguments)},t.prototype.toSetSeq=function(){return this},t})(H);H.isSeq=Jr,H.Keyed=wt,H.Set=Nt,H.Indexed=it,H.prototype[Ai]=!0;var Dt=(function(r){function t(e){this._array=e,this.size=e.length}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.get=function(n,i){return this.has(n)?this._array[mt(this,n)]:i},t.prototype.__iterate=function(n,i){for(var o=this._array,a=o.length,s=0;s!==a;){var u=i?a-++s:s++;if(n(o[u],u,this)===!1)break}return s},t.prototype.__iterator=function(n,i){var o=this._array,a=o.length,s=0;return new S(function(){if(s===a)return N();var u=i?a-++s:s++;return C(n,u,o[u])})},t})(it),Xr=(function(r){function t(e){var n=Object.keys(e).concat(Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[]);this._object=e,this._keys=n,this.size=n.length}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.get=function(n,i){return i!==void 0&&!this.has(n)?i:this._object[n]},t.prototype.has=function(n){return Pt.call(this._object,n)},t.prototype.__iterate=function(n,i){for(var o=this._object,a=this._keys,s=a.length,u=0;u!==s;){var f=a[i?s-++u:u++];if(n(o[f],f,this)===!1)break}return u},t.prototype.__iterator=function(n,i){var o=this._object,a=this._keys,s=a.length,u=0;return new S(function(){if(u===s)return N();var f=a[i?s-++u:u++];return C(n,f,o[f])})},t})(wt);Xr.prototype[St]=!0;var xs=(function(r){function t(e){this._collection=e,this.size=e.length||e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.__iterateUncached=function(n,i){if(i)return this.cacheResult().__iterate(n,i);var o=this._collection,a=Wr(o),s=0;if(Ei(a))for(var u;!(u=a.next()).done&&n(u.value,s++,this)!==!1;);return s},t.prototype.__iteratorUncached=function(n,i){if(i)return this.cacheResult().__iterator(n,i);var o=this._collection,a=Wr(o);if(!Ei(a))return new S(N);var s=0;return new S(function(){var u=a.next();return u.done?u:C(n,s++,u.value)})},t})(it),ki;function Vr(){return ki||(ki=new Dt([]))}function Zr(r){var t=Qr(r);if(t)return t.fromEntrySeq();if(typeof r=="object")return new Xr(r);throw new TypeError("Expected Array or collection object of [k, v] entries, or keyed object: "+r)}function Bi(r){var t=Qr(r);if(t)return t;throw new TypeError("Expected Array or collection object of values: "+r)}function Ls(r){var t=Qr(r);if(t)return Bs(r)?t.fromEntrySeq():js(r)?t.toSetSeq():t;if(typeof r=="object")return new Xr(r);throw new TypeError("Expected Array or collection object of values, or keyed object: "+r)}function Qr(r){return $i(r)?new Dt(r):Oi(r)?new xs(r):void 0}function Qt(){return this.__ensureOwner()}function tr(){return this.__ownerID?this:this.__ensureOwner(new Yr)}var rr=typeof Math.imul=="function"&&Math.imul(4294967295,2)===-2?Math.imul:function(t,e){t|=0,e|=0;var n=t&65535,i=e&65535;return n*i+((t>>>16)*i+n*(e>>>16)<<16>>>0)|0};function qr(r){return r>>>1&1073741824|r&3221225471}var Ps=Object.prototype.valueOf;function X(r){if(r==null)return ji(r);if(typeof r.hashCode=="function")return qr(r.hashCode(r));var t=Ks(r);if(t==null)return ji(t);switch(typeof t){case"boolean":return t?1108378657:1108378656;case"number":return Ns(t);case"string":return t.length>Ws?Ds(t):te(t);case"object":case"function":return Us(t);case"symbol":return Fs(t);default:if(typeof t.toString=="function")return te(t.toString());throw new Error("Value type "+typeof t+" cannot be hashed.")}}function ji(r){return r===null?1108378658:1108378659}function Ns(r){if(r!==r||r===1/0)return 0;var t=r|0;for(t!==r&&(t^=r*4294967295);r>4294967295;)r/=4294967295,t^=r;return qr(t)}function Ds(r){var t=oe[r];return t===void 0&&(t=te(r),ie===Gs&&(ie=0,oe={}),ie++,oe[r]=t),t}function te(r){for(var t=0,e=0;e<r.length;e++)t=31*t+r.charCodeAt(e)|0;return qr(t)}function Fs(r){var t=Ni[r];return t!==void 0||(t=Pi(),Ni[r]=t),t}function Us(r){var t;if(re&&(t=ee.get(r),t!==void 0)||(t=r[Ct],t!==void 0)||!Li&&(t=r.propertyIsEnumerable&&r.propertyIsEnumerable[Ct],t!==void 0||(t=Hs(r),t!==void 0)))return t;if(t=Pi(),re)ee.set(r,t);else{if(xi!==void 0&&xi(r)===!1)throw new Error("Non-extensible objects are not allowed as keys.");if(Li)Object.defineProperty(r,Ct,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(r.propertyIsEnumerable!==void 0&&r.propertyIsEnumerable===r.constructor.prototype.propertyIsEnumerable)r.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},r.propertyIsEnumerable[Ct]=t;else if(r.nodeType!==void 0)r[Ct]=t;else throw new Error("Unable to set a non-enumerable property on object.")}return t}var xi=Object.isExtensible,Li=(function(){try{return Object.defineProperty({},"@",{}),!0}catch{return!1}})();function Hs(r){if(r&&r.nodeType>0)switch(r.nodeType){case 1:return r.uniqueID;case 9:return r.documentElement&&r.documentElement.uniqueID}}function Ks(r){return r.valueOf!==Ps&&typeof r.valueOf=="function"?r.valueOf(r):r}function Pi(){var r=++ne;return ne&1073741824&&(ne=0),r}var re=typeof WeakMap=="function",ee;re&&(ee=new WeakMap);var Ni=Object.create(null),ne=0,Ct="__immutablehash__";typeof Symbol=="function"&&(Ct=Symbol(Ct));var Ws=16,Gs=255,ie=0,oe={},Mr=(function(r){function t(e,n){this._iter=e,this._useKeys=n,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.get=function(n,i){return this._iter.get(n,i)},t.prototype.has=function(n){return this._iter.has(n)},t.prototype.valueSeq=function(){return this._iter.valueSeq()},t.prototype.reverse=function(){var n=this,i=ae(this,!0);return this._useKeys||(i.valueSeq=function(){return n._iter.toSeq().reverse()}),i},t.prototype.map=function(n,i){var o=this,a=Ki(this,n,i);return this._useKeys||(a.valueSeq=function(){return o._iter.toSeq().map(n,i)}),a},t.prototype.__iterate=function(n,i){var o=this;return this._iter.__iterate(function(a,s){return n(a,s,o)},i)},t.prototype.__iterator=function(n,i){return this._iter.__iterator(n,i)},t})(wt);Mr.prototype[St]=!0;var Di=(function(r){function t(e){this._iter=e,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.includes=function(n){return this._iter.includes(n)},t.prototype.__iterate=function(n,i){var o=this,a=0;return i&&Lt(this),this._iter.__iterate(function(s){return n(s,i?o.size-++a:a++,o)},i)},t.prototype.__iterator=function(n,i){var o=this,a=this._iter.__iterator(G,i),s=0;return i&&Lt(this),new S(function(){var u=a.next();return u.done?u:C(n,i?o.size-++s:s++,u.value,u)})},t})(it),Fi=(function(r){function t(e){this._iter=e,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.has=function(n){return this._iter.includes(n)},t.prototype.__iterate=function(n,i){var o=this;return this._iter.__iterate(function(a){return n(a,a,o)},i)},t.prototype.__iterator=function(n,i){var o=this._iter.__iterator(G,i);return new S(function(){var a=o.next();return a.done?a:C(n,a.value,a.value,a)})},t})(Nt),Ui=(function(r){function t(e){this._iter=e,this.size=e.size}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.entrySeq=function(){return this._iter.toSeq()},t.prototype.__iterate=function(n,i){var o=this;return this._iter.__iterate(function(a){if(a){Xi(a);var s=W(a);return n(s?a.get(1):a[1],s?a.get(0):a[0],o)}},i)},t.prototype.__iterator=function(n,i){var o=this._iter.__iterator(G,i);return new S(function(){for(;;){var a=o.next();if(a.done)return a;var s=a.value;if(s){Xi(s);var u=W(s);return C(n,u?s.get(0):s[0],u?s.get(1):s[1],a)}}})},t})(wt);Di.prototype.cacheResult=Mr.prototype.cacheResult=Fi.prototype.cacheResult=Ui.prototype.cacheResult=fe;function Hi(r){var t=ct(r);return t._iter=r,t.size=r.size,t.flip=function(){return r},t.reverse=function(){var e=r.reverse.apply(this);return e.flip=function(){return r.reverse()},e},t.has=function(e){return r.includes(e)},t.includes=function(e){return r.has(e)},t.cacheResult=fe,t.__iterateUncached=function(e,n){var i=this;return r.__iterate(function(o,a){return e(a,o,i)!==!1},n)},t.__iteratorUncached=function(e,n){if(e===Y){var i=r.__iterator(e,n);return new S(function(){var o=i.next();if(!o.done){var a=o.value[0];o.value[0]=o.value[1],o.value[1]=a}return o})}return r.__iterator(e===G?xt:G,n)},t}function Ki(r,t,e){var n=ct(r);return n.size=r.size,n.has=function(i){return r.has(i)},n.get=function(i,o){var a=r.get(i,m);return a===m?o:t.call(e,a,i,r)},n.__iterateUncached=function(i,o){var a=this;return r.__iterate(function(s,u,f){return i(t.call(e,s,u,f),u,a)!==!1},o)},n.__iteratorUncached=function(i,o){var a=r.__iterator(Y,o);return new S(function(){var s=a.next();if(s.done)return s;var u=s.value,f=u[0];return C(i,f,t.call(e,u[1],f,r),s)})},n}function ae(r,t){var e=this,n=ct(r);return n._iter=r,n.size=r.size,n.reverse=function(){return r},r.flip&&(n.flip=function(){var i=Hi(r);return i.reverse=function(){return r.flip()},i}),n.get=function(i,o){return r.get(t?i:-1-i,o)},n.has=function(i){return r.has(t?i:-1-i)},n.includes=function(i){return r.includes(i)},n.cacheResult=fe,n.__iterate=function(i,o){var a=this,s=0;return o&&Lt(r),r.__iterate(function(u,f){return i(u,t?f:o?a.size-++s:s++,a)},!o)},n.__iterator=function(i,o){var a=0;o&&Lt(r);var s=r.__iterator(Y,!o);return new S(function(){var u=s.next();if(u.done)return u;var f=u.value;return C(i,t?f[0]:o?e.size-++a:a++,f[1],u)})},n}function Wi(r,t,e,n){var i=ct(r);return n&&(i.has=function(o){var a=r.get(o,m);return a!==m&&!!t.call(e,a,o,r)},i.get=function(o,a){var s=r.get(o,m);return s!==m&&t.call(e,s,o,r)?s:a}),i.__iterateUncached=function(o,a){var s=this,u=0;return r.__iterate(function(f,c,h){if(t.call(e,f,c,h))return u++,o(f,n?c:u-1,s)},a),u},i.__iteratorUncached=function(o,a){var s=r.__iterator(Y,a),u=0;return new S(function(){for(;;){var f=s.next();if(f.done)return f;var c=f.value,h=c[0],p=c[1];if(t.call(e,p,h,r))return C(o,n?h:u++,p,f)}})},i}function Ys(r,t,e){var n=B().asMutable();return r.__iterate(function(i,o){n.update(t.call(e,i,o,r),0,function(a){return a+1})}),n.asImmutable()}function Js(r,t,e){var n=z(r),i=(ft(r)?vt():B()).asMutable();r.__iterate(function(a,s){i.update(t.call(e,a,s,r),function(u){return u=u||[],u.push(n?[s,a]:a),u})});var o=ue(r);return i.map(function(a){return E(r,o(a))}).asImmutable()}function Xs(r,t,e){var n=z(r),i=[[],[]];r.__iterate(function(a,s){i[t.call(e,a,s,r)?1:0].push(n?[s,a]:a)});var o=ue(r);return i.map(function(a){return E(r,o(a))})}function se(r,t,e,n){var i=r.size;if(br(t,e,i))return r;if(typeof i>"u"&&(t<0||e<0))return se(r.toSeq().cacheResult(),t,e,n);var o=Zt(t,i),a=Ir(e,i),s=a-o,u;s===s&&(u=s<0?0:s);var f=ct(r);return f.size=u===0?u:r.size&&u||void 0,!n&&Jr(r)&&u>=0&&(f.get=function(c,h){return c=mt(this,c),c>=0&&c<u?r.get(c+o,h):h}),f.__iterateUncached=function(c,h){var p=this;if(u===0)return 0;if(h)return this.cacheResult().__iterate(c,h);var _=0,d=!0,v=0;return r.__iterate(function(w,I){if(!(d&&(d=_++<o)))return v++,c(w,n?I:v-1,p)!==!1&&v!==u}),v},f.__iteratorUncached=function(c,h){if(u!==0&&h)return this.cacheResult().__iterator(c,h);if(u===0)return new S(N);var p=r.__iterator(c,h),_=0,d=0;return new S(function(){for(;_++<o;)p.next();if(++d>u)return N();var v=p.next();return n||c===G||v.done?v:c===xt?C(c,d-1,void 0,v):C(c,d-1,v.value[1],v)})},f}function Vs(r,t,e){var n=ct(r);return n.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var s=0;return r.__iterate(function(u,f,c){return t.call(e,u,f,c)&&++s&&i(u,f,a)}),s},n.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var s=r.__iterator(Y,o),u=!0;return new S(function(){if(!u)return N();var f=s.next();if(f.done)return f;var c=f.value,h=c[0],p=c[1];return t.call(e,p,h,a)?i===Y?f:C(i,h,p,f):(u=!1,N())})},n}function Gi(r,t,e,n){var i=ct(r);return i.__iterateUncached=function(o,a){var s=this;if(a)return this.cacheResult().__iterate(o,a);var u=!0,f=0;return r.__iterate(function(c,h,p){if(!(u&&(u=t.call(e,c,h,p))))return f++,o(c,n?h:f-1,s)}),f},i.__iteratorUncached=function(o,a){var s=this;if(a)return this.cacheResult().__iterator(o,a);var u=r.__iterator(Y,a),f=!0,c=0;return new S(function(){var h,p,_;do{if(h=u.next(),h.done)return n||o===G?h:o===xt?C(o,c++,void 0,h):C(o,c++,h.value[1],h);var d=h.value;p=d[0],_=d[1],f&&(f=t.call(e,_,p,s))}while(f);return o===Y?h:C(o,p,_,h)})},i}var Zs=(function(r){function t(e){this._wrappedIterables=e.flatMap(function(n){return n._wrappedIterables?n._wrappedIterables:[n]}),this.size=this._wrappedIterables.reduce(function(n,i){if(n!==void 0){var o=i.size;if(o!==void 0)return n+o}},0),this[mr]=this._wrappedIterables[0][mr],this[gt]=this._wrappedIterables[0][gt],this[St]=this._wrappedIterables[0][St]}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.__iterateUncached=function(n,i){if(this._wrappedIterables.length!==0){if(i)return this.cacheResult().__iterate(n,i);for(var o=0,a=z(this),s=a?Y:G,u=this._wrappedIterables[o].__iterator(s,i),f=!0,c=0;f;){for(var h=u.next();h.done;){if(o++,o===this._wrappedIterables.length)return c;u=this._wrappedIterables[o].__iterator(s,i),h=u.next()}var p=a?n(h.value[1],h.value[0],this):n(h.value,c,this);f=p!==!1,c++}return c}},t.prototype.__iteratorUncached=function(n,i){var o=this;if(this._wrappedIterables.length===0)return new S(N);if(i)return this.cacheResult().__iterator(n,i);var a=0,s=this._wrappedIterables[a].__iterator(n,i);return new S(function(){for(var u=s.next();u.done;){if(a++,a===o._wrappedIterables.length)return u;s=o._wrappedIterables[a].__iterator(n,i),u=s.next()}return u})},t})(H);function Qs(r,t){var e=z(r),n=[r].concat(t).map(function(o){return W(o)?e&&(o=rt(o)):o=e?Zr(o):Bi(Array.isArray(o)?o:[o]),o}).filter(function(o){return o.size!==0});if(n.length===0)return r;if(n.length===1){var i=n[0];if(i===r||e&&z(i)||tt(r)&&tt(i))return i}return new Zs(n)}function Yi(r,t,e){var n=ct(r);return n.__iterateUncached=function(i,o){if(o)return this.cacheResult().__iterate(i,o);var a=0,s=!1;function u(f,c){f.__iterate(function(h,p){return(!t||c<t)&&W(h)?u(h,c+1):(a++,i(h,e?p:a-1,n)===!1&&(s=!0)),!s},o)}return u(r,0),a},n.__iteratorUncached=function(i,o){if(o)return this.cacheResult().__iterator(i,o);var a=r.__iterator(i,o),s=[],u=0;return new S(function(){for(;a;){var f=a.next();if(f.done!==!1){a=s.pop();continue}var c=f.value;if(i===Y&&(c=c[1]),(!t||s.length<t)&&W(c))s.push(a),a=c.__iterator(i,o);else return e?f:C(i,u++,c,f)}return N()})},n}function tu(r,t,e){var n=ue(r);return r.toSeq().map(function(i,o){return n(t.call(e,i,o,r))}).flatten(!0)}function ru(r,t){var e=ct(r);return e.size=r.size&&r.size*2-1,e.__iterateUncached=function(n,i){var o=this,a=0;return r.__iterate(function(s){return(!a||n(t,a++,o)!==!1)&&n(s,a++,o)!==!1},i),a},e.__iteratorUncached=function(n,i){var o=r.__iterator(G,i),a=0,s;return new S(function(){return(!s||a%2)&&(s=o.next(),s.done)?s:a%2?C(n,a++,t):C(n,a++,s.value,s)})},e}function Ft(r,t,e){t||(t=Vi);var n=z(r),i=0,o=r.toSeq().map(function(a,s){return[s,a,i++,e?e(a,s,r):a]}).valueSeq().toArray();return o.sort(function(a,s){return t(a[3],s[3])||a[2]-s[2]}).forEach(n?function(a,s){o[s].length=2}:function(a,s){o[s]=a[1]}),n?wt(o):tt(r)?it(o):Nt(o)}function Or(r,t,e){if(t||(t=Vi),e){var n=r.toSeq().map(function(i,o){return[i,e(i,o,r)]}).reduce(function(i,o){return Ji(t,i[1],o[1])?o:i});return n&&n[0]}return r.reduce(function(i,o){return Ji(t,i,o)?o:i})}function Ji(r,t,e){var n=r(e,t);return n===0&&e!==t&&(e==null||e!==e)||n>0}function Er(r,t,e,n){var i=ct(r),o=new Dt(e).map(function(a){return a.size});return i.size=n?o.max():o.min(),i.__iterate=function(a,s){for(var u=this.__iterator(G,s),f,c=0;!(f=u.next()).done&&a(f.value,c++,this)!==!1;);return c},i.__iteratorUncached=function(a,s){var u=e.map(function(h){return h=L(h),Wr(s?h.reverse():h)}),f=0,c=!1;return new S(function(){var h;return c||(h=u.map(function(p){return p.next()}),c=n?h.every(function(p){return p.done}):h.some(function(p){return p.done})),c?N():C(a,f++,t.apply(null,h.map(function(p){return p.value})))})},i}function E(r,t){return r===t?r:Jr(r)?t:r.constructor(t)}function Xi(r){if(r!==Object(r))throw new TypeError("Expected [K, V] tuple: "+r)}function ue(r){return z(r)?rt:tt(r)?Rt:jt}function ct(r){return Object.create((z(r)?wt:tt(r)?it:Nt).prototype)}function fe(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):H.prototype.cacheResult.call(this)}function Vi(r,t){return r===void 0&&t===void 0?0:r===void 0?1:t===void 0?-1:r>t?1:r<t?-1:0}function Zi(r){return!!(r&&typeof r.equals=="function"&&typeof r.hashCode=="function")}function V(r,t){if(r===t||r!==r&&t!==t)return!0;if(!r||!t)return!1;if(typeof r.valueOf=="function"&&typeof t.valueOf=="function"){if(r=r.valueOf(),t=t.valueOf(),r===t||r!==r&&t!==t)return!0;if(!r||!t)return!1}return!!(Zi(r)&&Zi(t)&&r.equals(t))}function Qi(r,t,e,n){return Kt(r,[t],e,n)}function to(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];return eo(this,r)}function ro(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];if(typeof r!="function")throw new TypeError("Invalid merger function: "+r);return eo(this,t,r)}function eo(r,t,e){for(var n=[],i=0;i<t.length;i++){var o=rt(t[i]);o.size!==0&&n.push(o)}return n.length===0?r:r.toSeq().size===0&&!r.__ownerID&&n.length===1?zt(r)?r:r.constructor(n[0]):r.withMutations(function(a){for(var s=e?function(f,c){Qi(a,c,m,function(h){return h===m?f:e(h,f,c)})}:function(f,c){a.set(c,f)},u=0;u<n.length;u++)n[u].forEach(s)})}var eu=Object.prototype.toString;function nu(r){if(!r||typeof r!="object"||eu.call(r)!=="[object Object]")return!1;var t=Object.getPrototypeOf(r);if(t===null)return!0;for(var e=t,n=Object.getPrototypeOf(t);n!==null;)e=n,n=Object.getPrototypeOf(e);return e===t}function bt(r){return typeof r=="object"&&(ut(r)||Array.isArray(r)||nu(r))}function ht(r,t){t=t||0;for(var e=Math.max(0,r.length-t),n=new Array(e),i=0;i<e;i++)n[i]=r[i+t];return n}function Tr(r){if(Array.isArray(r))return ht(r);var t={};for(var e in r)Pt.call(r,e)&&(t[e]=r[e]);return t}function ce(r,t,e){return he(r,t,iu(e))}function he(r,t,e){if(!bt(r))throw new TypeError("Cannot merge into non-data-structure value: "+r);if(ut(r))return typeof e=="function"&&r.mergeWith?r.mergeWith.apply(r,[e].concat(t)):r.merge?r.merge.apply(r,t):r.concat.apply(r,t);for(var n=Array.isArray(r),i=r,o=n?Rt:rt,a=n?function(u){i===r&&(i=Tr(i)),i.push(u)}:function(u,f){var c=Pt.call(i,f),h=c&&e?e(i[f],u,f):u;(!c||h!==i[f])&&(i===r&&(i=Tr(i)),i[f]=h)},s=0;s<t.length;s++)o(t[s]).forEach(a);return i}function iu(r){function t(e,n,i){return bt(e)&&bt(n)&&ou(e,n)?he(e,[n],t):r?r(e,n,i):n}return t}function ou(r,t){var e=H(r),n=H(t);return tt(e)===tt(n)&&z(e)===z(n)}function no(){for(var r=[],t=arguments.length;t--;)r[t]=arguments[t];return ce(this,r)}function io(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return ce(this,t,r)}function pe(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return Kt(this,r,pt(),function(n){return ce(n,t)})}function _e(r){for(var t=[],e=arguments.length-1;e-- >0;)t[e]=arguments[e+1];return Kt(this,r,pt(),function(n){return he(n,t)})}function au(r,t,e){return Kt(r,t,m,function(){return e})}function de(r,t){return au(this,r,t)}function le(r,t,e){return arguments.length===1?r(this):Qi(this,r,t,e)}function ve(r,t,e){return Kt(this,r,t,e)}function ye(){return this.__altered}function er(r){var t=this.asMutable();return r(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this}var oo="@@__IMMUTABLE_MAP__@@";function ge(r){return!!(r&&r[oo])}function nr(r,t){if(!r)throw new Error(t)}function Z(r){nr(r!==1/0,"Cannot perform this action with an infinite size.")}var B=(function(r){function t(e){return e==null?pt():ge(e)&&!ft(e)?e:pt().withMutations(function(n){var i=r(e);Z(i.size),i.forEach(function(o,a){return n.set(a,o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.__toString("Map {","}")},t.prototype.get=function(n,i){return this._root?this._root.get(0,void 0,n,i):i},t.prototype.set=function(n,i){return uo(this,n,i)},t.prototype.remove=function(n){return uo(this,n,m)},t.prototype.deleteAll=function(n){var i=L(n);return i.size===0?this:this.withMutations(function(o){i.forEach(function(a){return o.remove(a)})})},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):pt()},t.prototype.sort=function(n){return vt(Ft(this,n))},t.prototype.sortBy=function(n,i){return vt(Ft(this,i,n))},t.prototype.map=function(n,i){var o=this;return this.withMutations(function(a){a.forEach(function(s,u){a.set(u,n.call(i,s,u,o))})})},t.prototype.__iterator=function(n,i){return new su(this,n,i)},t.prototype.__iterate=function(n,i){var o=this,a=0;return this._root&&this._root.iterate(function(s){return a++,n(s[1],s[0],o)},i),a},t.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?Se(this.size,this._root,n,this.__hash):this.size===0?pt():(this.__ownerID=n,this.__altered=!1,this)},t})(rt);B.isMap=ge;var R=B.prototype;R[oo]=!0,R[Vt]=R.remove,R.removeAll=R.deleteAll,R.setIn=de,R.removeIn=R.deleteIn=Ie,R.update=le,R.updateIn=ve,R.merge=R.concat=to,R.mergeWith=ro,R.mergeDeep=no,R.mergeDeepWith=io,R.mergeIn=_e,R.mergeDeepIn=pe,R.withMutations=er,R.wasAltered=ye,R.asImmutable=Qt,R["@@transducer/init"]=R.asMutable=tr,R["@@transducer/step"]=function(r,t){return r.set(t[0],t[1])},R["@@transducer/result"]=function(r){return r.asImmutable()};var ir=function(t,e){this.ownerID=t,this.entries=e};ir.prototype.get=function(t,e,n,i){for(var o=this.entries,a=0,s=o.length;a<s;a++)if(V(n,o[a][0]))return o[a][1];return i},ir.prototype.update=function(t,e,n,i,o,a,s){for(var u=o===m,f=this.entries,c=0,h=f.length;c<h&&!V(i,f[c][0]);c++);var p=c<h;if(p?f[c][1]===o:u)return this;if(et(s),(u||!p)&&et(a),!(u&&f.length===1)){if(!p&&!u&&f.length>=_u)return uu(t,f,i,o);var _=t&&t===this.ownerID,d=_?f:ht(f);return p?u?c===h-1?d.pop():d[c]=d.pop():d[c]=[i,o]:d.push([i,o]),_?(this.entries=d,this):new ir(t,d)}};var Ut=function(t,e,n){this.ownerID=t,this.bitmap=e,this.nodes=n};Ut.prototype.get=function(t,e,n,i){e===void 0&&(e=X(n));var o=1<<((t===0?e:e>>>t)&D),a=this.bitmap;return(a&o)===0?i:this.nodes[co(a&o-1)].get(t+O,e,n,i)},Ut.prototype.update=function(t,e,n,i,o,a,s){n===void 0&&(n=X(i));var u=(e===0?n:n>>>e)&D,f=1<<u,c=this.bitmap,h=(c&f)!==0;if(!h&&o===m)return this;var p=co(c&f-1),_=this.nodes,d=h?_[p]:void 0,v=we(d,t,e+O,n,i,o,a,s);if(v===d)return this;if(!h&&v&&_.length>=du)return cu(t,_,c,u,v);if(h&&!v&&_.length===2&&fo(_[p^1]))return _[p^1];if(h&&v&&_.length===1&&fo(v))return v;var w=t&&t===this.ownerID,I=h?v?c:c^f:c|f,y=h?v?ho(_,p,v,w):pu(_,p,w):hu(_,p,v,w);return w?(this.bitmap=I,this.nodes=y,this):new Ut(t,I,y)};var or=function(t,e,n){this.ownerID=t,this.count=e,this.nodes=n};or.prototype.get=function(t,e,n,i){e===void 0&&(e=X(n));var o=(t===0?e:e>>>t)&D,a=this.nodes[o];return a?a.get(t+O,e,n,i):i},or.prototype.update=function(t,e,n,i,o,a,s){n===void 0&&(n=X(i));var u=(e===0?n:n>>>e)&D,f=o===m,c=this.nodes,h=c[u];if(f&&!h)return this;var p=we(h,t,e+O,n,i,o,a,s);if(p===h)return this;var _=this.count;if(!h)_++;else if(!p&&(_--,_<lu))return fu(t,c,_,u);var d=t&&t===this.ownerID,v=ho(c,u,p,d);return d?(this.count=_,this.nodes=v,this):new or(t,_,v)};var Ht=function(t,e,n){this.ownerID=t,this.keyHash=e,this.entries=n};Ht.prototype.get=function(t,e,n,i){for(var o=this.entries,a=0,s=o.length;a<s;a++)if(V(n,o[a][0]))return o[a][1];return i},Ht.prototype.update=function(t,e,n,i,o,a,s){n===void 0&&(n=X(i));var u=o===m;if(n!==this.keyHash)return u?this:(et(s),et(a),be(this,t,e,n,[i,o]));for(var f=this.entries,c=0,h=f.length;c<h&&!V(i,f[c][0]);c++);var p=c<h;if(p?f[c][1]===o:u)return this;if(et(s),(u||!p)&&et(a),u&&h===2)return new lt(t,this.keyHash,f[c^1]);var _=t&&t===this.ownerID,d=_?f:ht(f);return p?u?c===h-1?d.pop():d[c]=d.pop():d[c]=[i,o]:d.push([i,o]),_?(this.entries=d,this):new Ht(t,this.keyHash,d)};var lt=function(t,e,n){this.ownerID=t,this.keyHash=e,this.entry=n};lt.prototype.get=function(t,e,n,i){return V(n,this.entry[0])?this.entry[1]:i},lt.prototype.update=function(t,e,n,i,o,a,s){var u=o===m,f=V(i,this.entry[0]);if(f?o===this.entry[1]:u)return this;if(et(s),u){et(a);return}return f?t&&t===this.ownerID?(this.entry[1]=o,this):new lt(t,this.keyHash,[i,o]):(et(a),be(this,t,e,X(i),[i,o]))},ir.prototype.iterate=Ht.prototype.iterate=function(r,t){for(var e=this.entries,n=0,i=e.length-1;n<=i;n++)if(r(e[t?i-n:n])===!1)return!1},Ut.prototype.iterate=or.prototype.iterate=function(r,t){for(var e=this.nodes,n=0,i=e.length-1;n<=i;n++){var o=e[t?i-n:n];if(o&&o.iterate(r,t)===!1)return!1}},lt.prototype.iterate=function(r,t){return r(this.entry)};var su=(function(r){function t(e,n,i){this._type=n,this._reverse=i,this._stack=e._root&&ao(e._root)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.next=function(){for(var n=this._type,i=this._stack;i;){var o=i.node,a=i.index++,s=void 0;if(o.entry){if(a===0)return me(n,o.entry)}else if(o.entries){if(s=o.entries.length-1,a<=s)return me(n,o.entries[this._reverse?s-a:a])}else if(s=o.nodes.length-1,a<=s){var u=o.nodes[this._reverse?s-a:a];if(u){if(u.entry)return me(n,u.entry);i=this._stack=ao(u,i)}continue}i=this._stack=this._stack.__prev}return N()},t})(S);function me(r,t){return C(r,t[0],t[1])}function ao(r,t){return{node:r,index:0,__prev:t}}function Se(r,t,e,n){var i=Object.create(R);return i.size=r,i._root=t,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}var so;function pt(){return so||(so=Se(0))}function uo(r,t,e){var n,i;if(r._root){var o=Gr(),a=Gr();if(n=we(r._root,r.__ownerID,0,void 0,t,e,o,a),!a.value)return r;i=r.size+(o.value?e===m?-1:1:0)}else{if(e===m)return r;i=1,n=new ir(r.__ownerID,[[t,e]])}return r.__ownerID?(r.size=i,r._root=n,r.__hash=void 0,r.__altered=!0,r):n?Se(i,n):pt()}function we(r,t,e,n,i,o,a,s){return r?r.update(t,e,n,i,o,a,s):o===m?r:(et(s),et(a),new lt(t,n,[i,o]))}function fo(r){return r.constructor===lt||r.constructor===Ht}function be(r,t,e,n,i){if(r.keyHash===n)return new Ht(t,n,[r.entry,i]);var o=(e===0?r.keyHash:r.keyHash>>>e)&D,a=(e===0?n:n>>>e)&D,s,u=o===a?[be(r,t,e+O,n,i)]:(s=new lt(t,n,i),o<a?[r,s]:[s,r]);return new Ut(t,1<<o|1<<a,u)}function uu(r,t,e,n){r||(r=new Yr);for(var i=new lt(r,X(e),[e,n]),o=0;o<t.length;o++){var a=t[o];i=i.update(r,0,void 0,a[0],a[1])}return i}function fu(r,t,e,n){for(var i=0,o=0,a=new Array(e),s=0,u=1,f=t.length;s<f;s++,u<<=1){var c=t[s];c!==void 0&&s!==n&&(i|=u,a[o++]=c)}return new Ut(r,i,a)}function cu(r,t,e,n,i){for(var o=0,a=new Array(J),s=0;e!==0;s++,e>>>=1)a[s]=e&1?t[o++]:void 0;return a[n]=i,new or(r,o+1,a)}function co(r){return r-=r>>1&1431655765,r=(r&858993459)+(r>>2&858993459),r=r+(r>>4)&252645135,r+=r>>8,r+=r>>16,r&127}function ho(r,t,e,n){var i=n?r:ht(r);return i[t]=e,i}function hu(r,t,e,n){var i=r.length+1;if(n&&t+1===i)return r[t]=e,r;for(var o=new Array(i),a=0,s=0;s<i;s++)s===t?(o[s]=e,a=-1):o[s]=r[s+a];return o}function pu(r,t,e){var n=r.length-1;if(e&&t===n)return r.pop(),r;for(var i=new Array(n),o=0,a=0;a<n;a++)a===t&&(o=1),i[a]=r[a+o];return i}var _u=J/4,du=J/2,lu=J/4;function po(r){if($i(r)&&typeof r!="string")return r;if(ft(r))return r.toArray();throw new TypeError("Invalid keyPath: expected Ordered Collection or Array: "+r)}function ar(r){try{return typeof r=="string"?JSON.stringify(r):String(r)}catch{return JSON.stringify(r)}}function vu(r,t){return ut(r)?r.has(t):bt(r)&&Pt.call(r,t)}function _o(r,t,e){return ut(r)?r.get(t,e):vu(r,t)?typeof r.get=="function"?r.get(t):r[t]:e}function yu(r,t){if(!bt(r))throw new TypeError("Cannot update non-data-structure value: "+r);if(ut(r)){if(!r.remove)throw new TypeError("Cannot update immutable value without .remove() method: "+r);return r.remove(t)}if(!Pt.call(r,t))return r;var e=Tr(r);return Array.isArray(e)?e.splice(t,1):delete e[t],e}function gu(r,t,e){if(!bt(r))throw new TypeError("Cannot update non-data-structure value: "+r);if(ut(r)){if(!r.set)throw new TypeError("Cannot update immutable value without .set() method: "+r);return r.set(t,e)}if(Pt.call(r,t)&&e===r[t])return r;var n=Tr(r);return n[t]=e,n}function Kt(r,t,e,n){n||(n=e,e=void 0);var i=lo(ut(r),r,po(t),0,e,n);return i===m?e:i}function lo(r,t,e,n,i,o){var a=t===m;if(n===e.length){var s=a?i:t,u=o(s);return u===s?t:u}if(!a&&!bt(t))throw new TypeError("Cannot update within non-data-structure value in path ["+Array.from(e).slice(0,n).map(ar)+"]: "+t);var f=e[n],c=a?m:_o(t,f,m),h=lo(c===m?r:ut(c),c,e,n+1,i,o);return h===c?t:h===m?yu(t,f):gu(a?r?pt():{}:t,f,h)}function mu(r,t){return Kt(r,t,function(){return m})}function Ie(r){return mu(this,r)}var vo="@@__IMMUTABLE_LIST__@@";function yo(r){return!!(r&&r[vo])}var Rr=(function(r){function t(e){var n=zr();if(e==null)return n;if(yo(e))return e;var i=r(e),o=i.size;return o===0?n:(Z(o),o>0&&o<J?ur(0,o,O,null,new It(i.toArray())):n.withMutations(function(a){a.setSize(o),i.forEach(function(s,u){return a.set(u,s)})}))}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("List [","]")},t.prototype.get=function(n,i){if(n=mt(this,n),n>=0&&n<this.size){n+=this._origin;var o=mo(this,n);return o&&o.array[n&D]}return i},t.prototype.set=function(n,i){return Su(this,n,i)},t.prototype.remove=function(n){return this.has(n)?n===0?this.shift():n===this.size-1?this.pop():this.splice(n,1):this},t.prototype.insert=function(n,i){return this.splice(n,0,i)},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=O,this._root=this._tail=this.__hash=void 0,this.__altered=!0,this):zr()},t.prototype.push=function(){var n=arguments,i=this.size;return this.withMutations(function(o){qt(o,0,i+n.length);for(var a=0;a<n.length;a++)o.set(i+a,n[a])})},t.prototype.pop=function(){return qt(this,0,-1)},t.prototype.unshift=function(){var n=arguments;return this.withMutations(function(i){qt(i,-n.length);for(var o=0;o<n.length;o++)i.set(o,n[o])})},t.prototype.shift=function(){return qt(this,1)},t.prototype.shuffle=function(n){return n===void 0&&(n=Math.random),this.withMutations(function(i){for(var o=i.size,a,s;o;)a=Math.floor(n()*o--),s=i.get(a),i.set(a,i.get(o)),i.set(o,s)})},t.prototype.concat=function(){for(var n=arguments,i=[],o=0;o<arguments.length;o++){var a=n[o],s=r(typeof a!="string"&&Oi(a)?a:[a]);s.size!==0&&i.push(s)}return i.length===0?this:this.size===0&&!this.__ownerID&&i.length===1?this.constructor(i[0]):this.withMutations(function(u){i.forEach(function(f){return f.forEach(function(c){return u.push(c)})})})},t.prototype.setSize=function(n){return qt(this,0,n)},t.prototype.map=function(n,i){var o=this;return this.withMutations(function(a){for(var s=0;s<o.size;s++)a.set(s,n.call(i,a.get(s),s,o))})},t.prototype.slice=function(n,i){var o=this.size;return br(n,i,o)?this:qt(this,Zt(n,o),Ir(i,o))},t.prototype.__iterator=function(n,i){var o=i?this.size:0,a=go(this,i);return new S(function(){var s=a();return s===sr?N():C(n,i?--o:o++,s)})},t.prototype.__iterate=function(n,i){for(var o=i?this.size:0,a=go(this,i),s;(s=a())!==sr&&n(s,i?--o:o++,this)!==!1;);return o},t.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?ur(this._origin,this._capacity,this._level,this._root,this._tail,n,this.__hash):this.size===0?zr():(this.__ownerID=n,this.__altered=!1,this)},t})(Rt);Rr.isList=yo;var j=Rr.prototype;j[vo]=!0,j[Vt]=j.remove,j.merge=j.concat,j.setIn=de,j.deleteIn=j.removeIn=Ie,j.update=le,j.updateIn=ve,j.mergeIn=_e,j.mergeDeepIn=pe,j.withMutations=er,j.wasAltered=ye,j.asImmutable=Qt,j["@@transducer/init"]=j.asMutable=tr,j["@@transducer/step"]=function(r,t){return r.push(t)},j["@@transducer/result"]=function(r){return r.asImmutable()};var It=function(t,e){this.array=t,this.ownerID=e};It.prototype.removeBefore=function(t,e,n){if((n&(1<<e+O)-1)===0||this.array.length===0)return this;var i=n>>>e&D;if(i>=this.array.length)return new It([],t);var o=i===0,a;if(e>0){var s=this.array[i];if(a=s&&s.removeBefore(t,e-O,n),a===s&&o)return this}if(o&&!a)return this;var u=Wt(this,t);if(!o)for(var f=0;f<i;f++)u.array[f]=void 0;return a&&(u.array[i]=a),u},It.prototype.removeAfter=function(t,e,n){if(n===(e?1<<e+O:J)||this.array.length===0)return this;var i=n-1>>>e&D;if(i>=this.array.length)return this;var o;if(e>0){var a=this.array[i];if(o=a&&a.removeAfter(t,e-O,n),o===a&&i===this.array.length-1)return this}var s=Wt(this,t);return s.array.splice(i+1),o&&(s.array[i]=o),s};var sr={};function go(r,t){var e=r._origin,n=r._capacity,i=fr(n),o=r._tail;return a(r._root,r._level,0);function a(f,c,h){return c===0?s(f,h):u(f,c,h)}function s(f,c){var h=c===i?o&&o.array:f&&f.array,p=c>e?0:e-c,_=n-c;return _>J&&(_=J),function(){if(p===_)return sr;var d=t?--_:p++;return h&&h[d]}}function u(f,c,h){var p,_=f&&f.array,d=h>e?0:e-h>>c,v=(n-h>>c)+1;return v>J&&(v=J),function(){for(;;){if(p){var w=p();if(w!==sr)return w;p=null}if(d===v)return sr;var I=t?--v:d++;p=a(_&&_[I],c-O,h+(I<<c))}}}}function ur(r,t,e,n,i,o,a){var s=Object.create(j);return s.size=t-r,s._origin=r,s._capacity=t,s._level=e,s._root=n,s._tail=i,s.__ownerID=o,s.__hash=a,s.__altered=!1,s}function zr(){return ur(0,0,O)}function Su(r,t,e){if(t=mt(r,t),t!==t)return r;if(t>=r.size||t<0)return r.withMutations(function(a){t<0?qt(a,t).set(0,e):qt(a,0,t+1).set(t,e)});t+=r._origin;var n=r._tail,i=r._root,o=Gr();return t>=fr(r._capacity)?n=qe(n,r.__ownerID,0,t,e,o):i=qe(i,r.__ownerID,r._level,t,e,o),o.value?r.__ownerID?(r._root=i,r._tail=n,r.__hash=void 0,r.__altered=!0,r):ur(r._origin,r._capacity,r._level,i,n):r}function qe(r,t,e,n,i,o){var a=n>>>e&D,s=r&&a<r.array.length;if(!s&&i===void 0)return r;var u;if(e>0){var f=r&&r.array[a],c=qe(f,t,e-O,n,i,o);return c===f?r:(u=Wt(r,t),u.array[a]=c,u)}return s&&r.array[a]===i?r:(o&&et(o),u=Wt(r,t),i===void 0&&a===u.array.length-1?u.array.pop():u.array[a]=i,u)}function Wt(r,t){return t&&r&&t===r.ownerID?r:new It(r?r.array.slice():[],t)}function mo(r,t){if(t>=fr(r._capacity))return r._tail;if(t<1<<r._level+O){for(var e=r._root,n=r._level;e&&n>0;)e=e.array[t>>>n&D],n-=O;return e}}function qt(r,t,e){t!==void 0&&(t|=0),e!==void 0&&(e|=0);var n=r.__ownerID||new Yr,i=r._origin,o=r._capacity,a=i+t,s=e===void 0?o:e<0?o+e:i+e;if(a===i&&s===o)return r;if(a>=s)return r.clear();for(var u=r._level,f=r._root,c=0;a+c<0;)f=new It(f&&f.array.length?[void 0,f]:[],n),u+=O,c+=1<<u;c&&(a+=c,i+=c,s+=c,o+=c);for(var h=fr(o),p=fr(s);p>=1<<u+O;)f=new It(f&&f.array.length?[f]:[],n),u+=O;var _=r._tail,d=p<h?mo(r,s-1):p>h?new It([],n):_;if(_&&p>h&&a<o&&_.array.length){f=Wt(f,n);for(var v=f,w=u;w>O;w-=O){var I=h>>>w&D;v=v.array[I]=Wt(v.array[I],n)}v.array[h>>>O&D]=_}if(s<o&&(d=d&&d.removeAfter(n,0,s)),a>=p)a-=p,s-=p,u=O,f=null,d=d&&d.removeBefore(n,0,a);else if(a>i||p<h){for(c=0;f;){var y=a>>>u&D;if(y!==p>>>u&D)break;y&&(c+=(1<<u)*y),u-=O,f=f.array[y]}f&&a>i&&(f=f.removeBefore(n,u,a-c)),f&&p<h&&(f=f.removeAfter(n,u,p-c)),c&&(a-=c,s-=c)}return r.__ownerID?(r.size=s-a,r._origin=a,r._capacity=s,r._level=u,r._root=f,r._tail=d,r.__hash=void 0,r.__altered=!0,r):ur(a,s,u,f,d)}function fr(r){return r<J?0:r-1>>>O<<O}function So(r){return ge(r)&&ft(r)}var vt=(function(r){function t(e){return e==null?cr():So(e)?e:cr().withMutations(function(n){var i=rt(e);Z(i.size),i.forEach(function(o,a){return n.set(a,o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("OrderedMap {","}")},t.prototype.get=function(n,i){var o=this._map.get(n);return o!==void 0?this._list.get(o)[1]:i},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this.__altered=!0,this):cr()},t.prototype.set=function(n,i){return bo(this,n,i)},t.prototype.remove=function(n){return bo(this,n,m)},t.prototype.__iterate=function(n,i){var o=this;return this._list.__iterate(function(a){return a&&n(a[1],a[0],o)},i)},t.prototype.__iterator=function(n,i){return this._list.fromEntrySeq().__iterator(n,i)},t.prototype.__ensureOwner=function(n){if(n===this.__ownerID)return this;var i=this._map.__ensureOwner(n),o=this._list.__ensureOwner(n);return n?Me(i,o,n,this.__hash):this.size===0?cr():(this.__ownerID=n,this.__altered=!1,this._map=i,this._list=o,this)},t})(B);vt.isOrderedMap=So,vt.prototype[St]=!0,vt.prototype[Vt]=vt.prototype.remove;function Me(r,t,e,n){var i=Object.create(vt.prototype);return i.size=r?r.size:0,i._map=r,i._list=t,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}var wo;function cr(){return wo||(wo=Me(pt(),zr()))}function bo(r,t,e){var n=r._map,i=r._list,o=n.get(t),a=o!==void 0,s,u;if(e===m){if(!a)return r;i.size>=J&&i.size>=n.size*2?(u=i.filter(function(f,c){return f!==void 0&&o!==c}),s=u.toKeyedSeq().map(function(f){return f[0]}).flip().toMap(),r.__ownerID&&(s.__ownerID=u.__ownerID=r.__ownerID)):(s=n.remove(t),u=o===i.size-1?i.pop():i.set(o,void 0))}else if(a){if(e===i.get(o)[1])return r;s=n,u=i.set(o,[t,e])}else s=n.set(t,i.size),u=i.set(i.size,[t,e]);return r.__ownerID?(r.size=s.size,r._map=s,r._list=u,r.__hash=void 0,r.__altered=!0,r):Me(s,u)}var Io="@@__IMMUTABLE_STACK__@@";function Oe(r){return!!(r&&r[Io])}var Ee=(function(r){function t(e){return e==null?Cr():Oe(e)?e:Cr().pushAll(e)}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.prototype.toString=function(){return this.__toString("Stack [","]")},t.prototype.get=function(n,i){var o=this._head;for(n=mt(this,n);o&&n--;)o=o.next;return o?o.value:i},t.prototype.peek=function(){return this._head&&this._head.value},t.prototype.push=function(){var n=arguments;if(arguments.length===0)return this;for(var i=this.size+arguments.length,o=this._head,a=arguments.length-1;a>=0;a--)o={value:n[a],next:o};return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):hr(i,o)},t.prototype.pushAll=function(n){if(n=r(n),n.size===0)return this;if(this.size===0&&Oe(n))return n;Z(n.size);var i=this.size,o=this._head;return n.__iterate(function(a){i++,o={value:a,next:o}},!0),this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):hr(i,o)},t.prototype.pop=function(){return this.slice(1)},t.prototype.clear=function(){return this.size===0?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Cr()},t.prototype.slice=function(n,i){if(br(n,i,this.size))return this;var o=Zt(n,this.size),a=Ir(i,this.size);if(a!==this.size)return r.prototype.slice.call(this,n,i);for(var s=this.size-o,u=this._head;o--;)u=u.next;return this.__ownerID?(this.size=s,this._head=u,this.__hash=void 0,this.__altered=!0,this):hr(s,u)},t.prototype.__ensureOwner=function(n){return n===this.__ownerID?this:n?hr(this.size,this._head,n,this.__hash):this.size===0?Cr():(this.__ownerID=n,this.__altered=!1,this)},t.prototype.__iterate=function(n,i){var o=this;if(i)return new Dt(this.toArray()).__iterate(function(u,f){return n(u,f,o)},i);for(var a=0,s=this._head;s&&n(s.value,a++,this)!==!1;)s=s.next;return a},t.prototype.__iterator=function(n,i){if(i)return new Dt(this.toArray()).__iterator(n,i);var o=0,a=this._head;return new S(function(){if(a){var s=a.value;return a=a.next,C(n,o++,s)}return N()})},t})(Rt);Ee.isStack=Oe;var F=Ee.prototype;F[Io]=!0,F.shift=F.pop,F.unshift=F.push,F.unshiftAll=F.pushAll,F.withMutations=er,F.wasAltered=ye,F.asImmutable=Qt,F["@@transducer/init"]=F.asMutable=tr,F["@@transducer/step"]=function(r,t){return r.unshift(t)},F["@@transducer/result"]=function(r){return r.asImmutable()};function hr(r,t,e,n){var i=Object.create(F);return i.size=r,i._head=t,i.__ownerID=e,i.__hash=n,i.__altered=!1,i}var qo;function Cr(){return qo||(qo=hr(0))}function Mo(r,t,e,n,i,o){return Z(r.size),r.__iterate(function(a,s,u){i?(i=!1,e=a):e=t.call(n,e,a,s,u)},o),e}function wu(r,t){return t}function bu(r,t){return[t,r]}function Te(r){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return!r.apply(this,t)}}function Oo(r){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return-r.apply(this,t)}}function Eo(r,t){return r<t?1:r>t?-1:0}function To(r,t){if(r===t)return!0;if(!W(t)||r.size!==void 0&&t.size!==void 0&&r.size!==t.size||r.__hash!==void 0&&t.__hash!==void 0&&r.__hash!==t.__hash||z(r)!==z(t)||tt(r)!==tt(t)||ft(r)!==ft(t))return!1;if(r.size===0&&t.size===0)return!0;var e=!Hr(r);if(ft(r)){var n=r.entries();return t.every(function(u,f){var c=n.next().value;return c&&V(c[1],u)&&(e||V(c[0],f))})&&n.next().done}var i=!1;if(r.size===void 0)if(t.size===void 0)typeof r.cacheResult=="function"&&r.cacheResult();else{i=!0;var o=r;r=t,t=o}var a=!0,s=t.__iterate(function(u,f){if(e?!r.has(u):i?!V(u,r.get(f,m)):!V(r.get(f,m),u))return a=!1,!1});return a&&r.size===s}var Iu=(function(r){function t(e,n,i){if(i===void 0&&(i=1),!(this instanceof t))return new t(e,n,i);if(nr(i!==0,"Cannot step a Range by 0"),nr(e!==void 0,"You must define a start value when using Range"),nr(n!==void 0,"You must define an end value when using Range"),i=Math.abs(i),n<e&&(i=-i),this._start=e,this._end=n,this._step=i,this.size=Math.max(0,Math.ceil((n-e)/i-1)+1),this.size===0){if(Re)return Re;Re=this}}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.size===0?"Range []":"Range [ "+this._start+"..."+this._end+(this._step!==1?" by "+this._step:"")+" ]"},t.prototype.get=function(n,i){return this.has(n)?this._start+mt(this,n)*this._step:i},t.prototype.includes=function(n){var i=(n-this._start)/this._step;return i>=0&&i<this.size&&i===Math.floor(i)},t.prototype.slice=function(n,i){return br(n,i,this.size)?this:(n=Zt(n,this.size),i=Ir(i,this.size),i<=n?new t(0,0):new t(this.get(n,this._end),this.get(i,this._end),this._step))},t.prototype.indexOf=function(n){var i=n-this._start;if(i%this._step===0){var o=i/this._step;if(o>=0&&o<this.size)return o}return-1},t.prototype.lastIndexOf=function(n){return this.indexOf(n)},t.prototype.__iterate=function(n,i){for(var o=this.size,a=this._step,s=i?this._start+(o-1)*a:this._start,u=0;u!==o&&n(s,i?o-++u:u++,this)!==!1;)s+=i?-a:a;return u},t.prototype.__iterator=function(n,i){var o=this.size,a=this._step,s=i?this._start+(o-1)*a:this._start,u=0;return new S(function(){if(u===o)return N();var f=s;return s+=i?-a:a,C(n,i?o-++u:u++,f)})},t.prototype.equals=function(n){return n instanceof t?this._start===n._start&&this._end===n._end&&this._step===n._step:To(this,n)},t})(it),Re,Ro="@@__IMMUTABLE_SET__@@";function ze(r){return!!(r&&r[Ro])}var _t=(function(r){function t(e){return e==null?pr():ze(e)&&!ft(e)?e:pr().withMutations(function(n){var i=r(e);Z(i.size),i.forEach(function(o){return n.add(o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(n){return this(rt(n).keySeq())},t.intersect=function(n){return n=L(n).toArray(),n.length?x.intersect.apply(t(n.pop()),n):pr()},t.union=function(n){return n=L(n).toArray(),n.length?x.union.apply(t(n.pop()),n):pr()},t.prototype.toString=function(){return this.__toString("Set {","}")},t.prototype.has=function(n){return this._map.has(n)},t.prototype.add=function(n){return Ar(this,this._map.set(n,n))},t.prototype.remove=function(n){return Ar(this,this._map.remove(n))},t.prototype.clear=function(){return Ar(this,this._map.clear())},t.prototype.map=function(n,i){var o=this,a=!1,s=Ar(this,this._map.mapEntries(function(u){var f=u[1],c=n.call(i,f,f,o);return c!==f&&(a=!0),[c,c]},i));return a?s:this},t.prototype.union=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];return n=n.filter(function(o){return o.size!==0}),n.length===0?this:this.size===0&&!this.__ownerID&&n.length===1?this.constructor(n[0]):this.withMutations(function(o){for(var a=0;a<n.length;a++)typeof n[a]=="string"?o.add(n[a]):r(n[a]).forEach(function(s){return o.add(s)})})},t.prototype.intersect=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(n.length===0)return this;n=n.map(function(a){return r(a)});var o=[];return this.forEach(function(a){n.every(function(s){return s.includes(a)})||o.push(a)}),this.withMutations(function(a){o.forEach(function(s){a.remove(s)})})},t.prototype.subtract=function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(n.length===0)return this;n=n.map(function(a){return r(a)});var o=[];return this.forEach(function(a){n.some(function(s){return s.includes(a)})&&o.push(a)}),this.withMutations(function(a){o.forEach(function(s){a.remove(s)})})},t.prototype.sort=function(n){return dr(Ft(this,n))},t.prototype.sortBy=function(n,i){return dr(Ft(this,i,n))},t.prototype.wasAltered=function(){return this._map.wasAltered()},t.prototype.__iterate=function(n,i){var o=this;return this._map.__iterate(function(a){return n(a,a,o)},i)},t.prototype.__iterator=function(n,i){return this._map.__iterator(n,i)},t.prototype.__ensureOwner=function(n){if(n===this.__ownerID)return this;var i=this._map.__ensureOwner(n);return n?this.__make(i,n):this.size===0?this.__empty():(this.__ownerID=n,this._map=i,this)},t})(jt);_t.isSet=ze;var x=_t.prototype;x[Ro]=!0,x[Vt]=x.remove,x.merge=x.concat=x.union,x.withMutations=er,x.asImmutable=Qt,x["@@transducer/init"]=x.asMutable=tr,x["@@transducer/step"]=function(r,t){return r.add(t)},x["@@transducer/result"]=function(r){return r.asImmutable()},x.__empty=pr,x.__make=zo;function Ar(r,t){return r.__ownerID?(r.size=t.size,r._map=t,r):t===r._map?r:t.size===0?r.__empty():r.__make(t)}function zo(r,t){var e=Object.create(x);return e.size=r?r.size:0,e._map=r,e.__ownerID=t,e}var Co;function pr(){return Co||(Co=zo(pt()))}function Ao(r,t,e){for(var n=po(t),i=0;i!==n.length;)if(r=_o(r,n[i++],m),r===m)return e;return r}function $o(r,t){return Ao(this,r,t)}function qu(r,t){return Ao(r,t,m)!==m}function Mu(r){return qu(this,r)}function ko(){Z(this.size);var r={};return this.__iterate(function(t,e){r[e]=t}),r}function $r(r){if(!r||typeof r!="object")return r;if(!W(r)){if(!bt(r))return r;r=H(r)}if(z(r)){var t={};return r.__iterate(function(n,i){t[i]=$r(n)}),t}var e=[];return r.__iterate(function(n){e.push($r(n))}),e}function Ou(r){if(r.size===1/0)return 0;var t=ft(r),e=z(r),n=t?1:0;return r.__iterate(e?t?function(i,o){n=31*n+Bo(X(i),X(o))|0}:function(i,o){n=n+Bo(X(i),X(o))|0}:t?function(i){n=31*n+X(i)|0}:function(i){n=n+X(i)|0}),Eu(r.size,n)}function Eu(r,t){return t=rr(t,3432918353),t=rr(t<<15|t>>>-15,461845907),t=rr(t<<13|t>>>-13,5),t=(t+3864292196|0)^r,t=rr(t^t>>>16,2246822507),t=rr(t^t>>>13,3266489909),t=qr(t^t>>>16),t}function Bo(r,t){return r^t+2654435769+(r<<6)+(r>>2)|0}function At(r,t){var e=function(n){r.prototype[n]=t[n]};return Object.keys(t).forEach(e),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(e),r}L.Iterator=S,At(L,{toArray:function(){Z(this.size);var t=new Array(this.size||0),e=z(this),n=0;return this.__iterate(function(i,o){t[n++]=e?[o,i]:i}),t},toIndexedSeq:function(){return new Di(this)},toJS:function(){return $r(this)},toKeyedSeq:function(){return new Mr(this,!0)},toMap:function(){return B(this.toKeyedSeq())},toObject:ko,toOrderedMap:function(){return vt(this.toKeyedSeq())},toOrderedSet:function(){return dr(z(this)?this.valueSeq():this)},toSet:function(){return _t(z(this)?this.valueSeq():this)},toSetSeq:function(){return new Fi(this)},toSeq:function(){return tt(this)?this.toIndexedSeq():z(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Ee(z(this)?this.valueSeq():this)},toList:function(){return Rr(z(this)?this.valueSeq():this)},toString:function(){return"[Collection]"},__toString:function(t,e){return this.size===0?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return E(this,Qs(this,t))},includes:function(t){return this.some(function(e){return V(e,t)})},entries:function(){return this.__iterator(Y)},every:function(t,e){Z(this.size);var n=!0;return this.__iterate(function(i,o,a){if(!t.call(e,i,o,a))return n=!1,!1}),n},filter:function(t,e){return E(this,Wi(this,t,e,!0))},partition:function(t,e){return Xs(this,t,e)},find:function(t,e,n){var i=this.findEntry(t,e);return i?i[1]:n},forEach:function(t,e){return Z(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){Z(this.size),t=t!==void 0?""+t:",";var e="",n=!0;return this.__iterate(function(i){n?n=!1:e+=t,e+=i!=null?i.toString():""}),e},keys:function(){return this.__iterator(xt)},map:function(t,e){return E(this,Ki(this,t,e))},reduce:function(t,e,n){return Mo(this,t,e,n,arguments.length<2,!1)},reduceRight:function(t,e,n){return Mo(this,t,e,n,arguments.length<2,!0)},reverse:function(){return E(this,ae(this,!0))},slice:function(t,e){return E(this,se(this,t,e,!0))},some:function(t,e){Z(this.size);var n=!1;return this.__iterate(function(i,o,a){if(t.call(e,i,o,a))return n=!0,!1}),n},sort:function(t){return E(this,Ft(this,t))},values:function(){return this.__iterator(G)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return this.size!==void 0?this.size===0:!this.some(function(){return!0})},count:function(t,e){return Lt(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return Ys(this,t,e)},equals:function(t){return To(this,t)},entrySeq:function(){var t=this;if(t._cache)return new Dt(t._cache);var e=t.toSeq().map(bu).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(Te(t),e)},findEntry:function(t,e,n){var i=n;return this.__iterate(function(o,a,s){if(t.call(e,o,a,s))return i=[a,o],!1}),i},findKey:function(t,e){var n=this.findEntry(t,e);return n&&n[0]},findLast:function(t,e,n){return this.toKeyedSeq().reverse().find(t,e,n)},findLastEntry:function(t,e,n){return this.toKeyedSeq().reverse().findEntry(t,e,n)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(t){return this.find(Ti,null,t)},flatMap:function(t,e){return E(this,tu(this,t,e))},flatten:function(t){return E(this,Yi(this,t,!0))},fromEntrySeq:function(){return new Ui(this)},get:function(t,e){return this.find(function(n,i){return V(i,t)},void 0,e)},getIn:$o,groupBy:function(t,e){return Js(this,t,e)},has:function(t){return this.get(t,m)!==m},hasIn:Mu,isSubset:function(t){return t=typeof t.includes=="function"?t:L(t),this.every(function(e){return t.includes(e)})},isSuperset:function(t){return t=typeof t.isSubset=="function"?t:L(t),t.isSubset(this)},keyOf:function(t){return this.findKey(function(e){return V(e,t)})},keySeq:function(){return this.toSeq().map(wu).toIndexedSeq()},last:function(t){return this.toSeq().reverse().first(t)},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return Or(this,t)},maxBy:function(t,e){return Or(this,e,t)},min:function(t){return Or(this,t?Oo(t):Eo)},minBy:function(t,e){return Or(this,e?Oo(e):Eo,t)},rest:function(){return this.slice(1)},skip:function(t){return t===0?this:this.slice(Math.max(0,t))},skipLast:function(t){return t===0?this:this.slice(0,-Math.max(0,t))},skipWhile:function(t,e){return E(this,Gi(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(Te(t),e)},sortBy:function(t,e){return E(this,Ft(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return this.slice(-Math.max(0,t))},takeWhile:function(t,e){return E(this,Vs(this,t,e))},takeUntil:function(t,e){return this.takeWhile(Te(t),e)},update:function(t){return t(this)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=Ou(this))}});var P=L.prototype;P[qi]=!0,P[Sr]=P.values,P.toJSON=P.toArray,P.__toStringMapper=ar,P.inspect=P.toSource=function(){return this.toString()},P.chain=P.flatMap,P.contains=P.includes,At(rt,{flip:function(){return E(this,Hi(this))},mapEntries:function(t,e){var n=this,i=0;return E(this,this.toSeq().map(function(o,a){return t.call(e,[a,o],i++,n)}).fromEntrySeq())},mapKeys:function(t,e){var n=this;return E(this,this.toSeq().flip().map(function(i,o){return t.call(e,i,o,n)}).flip())}});var _r=rt.prototype;_r[mr]=!0,_r[Sr]=P.entries,_r.toJSON=ko,_r.__toStringMapper=function(r,t){return ar(t)+": "+ar(r)},At(Rt,{toKeyedSeq:function(){return new Mr(this,!1)},filter:function(t,e){return E(this,Wi(this,t,e,!1))},findIndex:function(t,e){var n=this.findEntry(t,e);return n?n[0]:-1},indexOf:function(t){var e=this.keyOf(t);return e===void 0?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return e===void 0?-1:e},reverse:function(){return E(this,ae(this,!1))},slice:function(t,e){return E(this,se(this,t,e,!1))},splice:function(t,e){var n=arguments.length;if(e=Math.max(e||0,0),n===0||n===2&&!e)return this;t=Zt(t,t<0?this.count():this.size);var i=this.slice(0,t);return E(this,n===1?i:i.concat(ht(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.findLastEntry(t,e);return n?n[0]:-1},first:function(t){return this.get(0,t)},flatten:function(t){return E(this,Yi(this,t,!1))},get:function(t,e){return t=mt(this,t),t<0||this.size===1/0||this.size!==void 0&&t>this.size?e:this.find(function(n,i){return i===t},void 0,e)},has:function(t){return t=mt(this,t),t>=0&&(this.size!==void 0?this.size===1/0||t<this.size:this.indexOf(t)!==-1)},interpose:function(t){return E(this,ru(this,t))},interleave:function(){var t=[this].concat(ht(arguments)),e=Er(this.toSeq(),it.of,t),n=e.flatten(!0);return e.size&&(n.size=e.size*t.length),E(this,n)},keySeq:function(){return Iu(0,this.size)},last:function(t){return this.get(-1,t)},skipWhile:function(t,e){return E(this,Gi(this,t,e,!1))},zip:function(){var t=[this].concat(ht(arguments));return E(this,Er(this,jo,t))},zipAll:function(){var t=[this].concat(ht(arguments));return E(this,Er(this,jo,t,!0))},zipWith:function(t){var e=ht(arguments);return e[0]=this,E(this,Er(this,t,e))}});var Gt=Rt.prototype;Gt[gt]=!0,Gt[St]=!0,At(jt,{get:function(t,e){return this.has(t)?t:e},includes:function(t){return this.has(t)},keySeq:function(){return this.valueSeq()}});var Yt=jt.prototype;Yt.has=P.includes,Yt.contains=Yt.includes,Yt.keys=Yt.values,At(wt,_r),At(it,Gt),At(Nt,Yt);function jo(){return ht(arguments)}function xo(r){return ze(r)&&ft(r)}var dr=(function(r){function t(e){return e==null?Ce():xo(e)?e:Ce().withMutations(function(n){var i=jt(e);Z(i.size),i.forEach(function(o){return n.add(o)})})}return r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t,t.of=function(){return this(arguments)},t.fromKeys=function(n){return this(rt(n).keySeq())},t.prototype.toString=function(){return this.__toString("OrderedSet {","}")},t})(_t);dr.isOrderedSet=xo;var $t=dr.prototype;$t[St]=!0,$t.zip=Gt.zip,$t.zipWith=Gt.zipWith,$t.zipAll=Gt.zipAll,$t.__empty=Ce,$t.__make=Lo;function Lo(r,t){var e=Object.create($t);return e.size=r?r.size:0,e._map=r,e.__ownerID=t,e}var Po;function Ce(){return Po||(Po=Lo(cr()))}function Tu(r){if(zt(r))throw new Error("Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.");if(ut(r))throw new Error("Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.");if(r===null||typeof r!="object")throw new Error("Can not call `Record` with a non-object as default values. Use a plain javascript object instead.")}var $=function(t,e){var n;Tu(t);var i=function(s){var u=this;if(s instanceof i)return s;if(!(this instanceof i))return new i(s);if(!n){n=!0;var f=Object.keys(t),c=o._indices={};o._name=e,o._keys=f,o._defaultValues=t;for(var h=0;h<f.length;h++){var p=f[h];c[p]=h,o[p]?typeof console=="object"&&console.warn&&console.warn("Cannot define "+$e(this)+' with property "'+p+'" since that property name is part of the Record API.'):Ru(o,p)}}return this.__ownerID=void 0,this._values=Rr().withMutations(function(_){_.setSize(u._keys.length),rt(s).forEach(function(d,v){_.set(u._indices[v],d===u._defaultValues[v]?void 0:d)})}),this},o=i.prototype=Object.create(T);return o.constructor=i,e&&(i.displayName=e),i};$.prototype.toString=function(){for(var t=$e(this)+" { ",e=this._keys,n,i=0,o=e.length;i!==o;i++)n=e[i],t+=(i?", ":"")+n+": "+ar(this.get(n));return t+" }"},$.prototype.equals=function(t){return this===t||zt(t)&&Jt(this).equals(Jt(t))},$.prototype.hashCode=function(){return Jt(this).hashCode()},$.prototype.has=function(t){return this._indices.hasOwnProperty(t)},$.prototype.get=function(t,e){if(!this.has(t))return e;var n=this._indices[t],i=this._values.get(n);return i===void 0?this._defaultValues[t]:i},$.prototype.set=function(t,e){if(this.has(t)){var n=this._values.set(this._indices[t],e===this._defaultValues[t]?void 0:e);if(n!==this._values&&!this.__ownerID)return Ae(this,n)}return this},$.prototype.remove=function(t){return this.set(t)},$.prototype.clear=function(){var t=this._values.clear().setSize(this._keys.length);return this.__ownerID?this:Ae(this,t)},$.prototype.wasAltered=function(){return this._values.wasAltered()},$.prototype.toSeq=function(){return Jt(this)},$.prototype.toJS=function(){return $r(this)},$.prototype.entries=function(){return this.__iterator(Y)},$.prototype.__iterator=function(t,e){return Jt(this).__iterator(t,e)},$.prototype.__iterate=function(t,e){return Jt(this).__iterate(t,e)},$.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._values.__ensureOwner(t);return t?Ae(this,e,t):(this.__ownerID=t,this._values=e,this)},$.isRecord=zt,$.getDescriptiveName=$e;var T=$.prototype;T[Ci]=!0,T[Vt]=T.remove,T.deleteIn=T.removeIn=Ie,T.getIn=$o,T.hasIn=P.hasIn,T.merge=to,T.mergeWith=ro,T.mergeIn=_e,T.mergeDeep=no,T.mergeDeepWith=io,T.mergeDeepIn=pe,T.setIn=de,T.update=le,T.updateIn=ve,T.withMutations=er,T.asMutable=tr,T.asImmutable=Qt,T[Sr]=T.entries,T.toJSON=T.toObject=P.toObject,T.inspect=T.toSource=function(){return this.toString()};function Ae(r,t,e){var n=Object.create(Object.getPrototypeOf(r));return n._values=t,n.__ownerID=e,n}function $e(r){return r.constructor.displayName||r.constructor.name||"Record"}function Jt(r){return Zr(r._keys.map(function(t){return[t,r.get(t)]}))}function Ru(r,t){try{Object.defineProperty(r,t,{get:function(){return this.get(t)},set:function(e){nr(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}catch{}}var kr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function zu(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var ke,No;function Do(){if(No)return ke;No=1;function r(t,e){for(var n=-1,i=e.length,o=t.length;++n<i;)t[o+n]=e[n];return t}return ke=r,ke}var Be,Fo;function Cu(){if(Fo)return Be;Fo=1;var r=typeof kr=="object"&&kr&&kr.Object===Object&&kr;return Be=r,Be}var je,Uo;function xe(){if(Uo)return je;Uo=1;var r=Cu(),t=typeof self=="object"&&self&&self.Object===Object&&self,e=r||t||Function("return this")();return je=e,je}var Le,Ho;function Br(){if(Ho)return Le;Ho=1;var r=xe(),t=r.Symbol;return Le=t,Le}var Pe,Ko;function Au(){if(Ko)return Pe;Ko=1;var r=Br(),t=Object.prototype,e=t.hasOwnProperty,n=t.toString,i=r?r.toStringTag:void 0;function o(a){var s=e.call(a,i),u=a[i];try{a[i]=void 0;var f=!0}catch{}var c=n.call(a);return f&&(s?a[i]=u:delete a[i]),c}return Pe=o,Pe}var Ne,Wo;function $u(){if(Wo)return Ne;Wo=1;var r=Object.prototype,t=r.toString;function e(n){return t.call(n)}return Ne=e,Ne}var De,Go;function jr(){if(Go)return De;Go=1;var r=Br(),t=Au(),e=$u(),n="[object Null]",i="[object Undefined]",o=r?r.toStringTag:void 0;function a(s){return s==null?s===void 0?i:n:o&&o in Object(s)?t(s):e(s)}return De=a,De}var Fe,Yo;function xr(){if(Yo)return Fe;Yo=1;function r(t){return t!=null&&typeof t=="object"}return Fe=r,Fe}var Ue,Jo;function ku(){if(Jo)return Ue;Jo=1;var r=jr(),t=xr(),e="[object Arguments]";function n(i){return t(i)&&r(i)==e}return Ue=n,Ue}var He,Xo;function Vo(){if(Xo)return He;Xo=1;var r=ku(),t=xr(),e=Object.prototype,n=e.hasOwnProperty,i=e.propertyIsEnumerable,o=r((function(){return arguments})())?r:function(a){return t(a)&&n.call(a,"callee")&&!i.call(a,"callee")};return He=o,He}var Ke,Zo;function Mt(){if(Zo)return Ke;Zo=1;var r=Array.isArray;return Ke=r,Ke}var We,Qo;function Bu(){if(Qo)return We;Qo=1;var r=Br(),t=Vo(),e=Mt(),n=r?r.isConcatSpreadable:void 0;function i(o){return e(o)||t(o)||!!(n&&o&&o[n])}return We=i,We}var Ge,ta;function ju(){if(ta)return Ge;ta=1;var r=Do(),t=Bu();function e(n,i,o,a,s){var u=-1,f=n.length;for(o||(o=t),s||(s=[]);++u<f;){var c=n[u];i>0&&o(c)?i>1?e(c,i-1,o,a,s):r(s,c):a||(s[s.length]=c)}return s}return Ge=e,Ge}var Ye,ra;function xu(){if(ra)return Ye;ra=1;function r(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}return Ye=r,Ye}var Je,ea;function Lu(){if(ea)return Je;ea=1;var r=Do(),t=ju(),e=xu(),n=Mt();function i(){var o=arguments.length;if(!o)return[];for(var a=Array(o-1),s=arguments[0],u=o;u--;)a[u-1]=arguments[u];return r(n(s)?e(s):[s],t(a,1))}return Je=i,Je}Lu();var Xe,na;function Pu(){if(na)return Xe;na=1;function r(t,e){return t!=null&&e in Object(t)}return Xe=r,Xe}var Ve,ia;function Lr(){if(ia)return Ve;ia=1;var r=jr(),t=xr(),e="[object Symbol]";function n(i){return typeof i=="symbol"||t(i)&&r(i)==e}return Ve=n,Ve}var Ze,oa;function Nu(){if(oa)return Ze;oa=1;var r=Mt(),t=Lr(),e=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,n=/^\w*$/;function i(o,a){if(r(o))return!1;var s=typeof o;return s=="number"||s=="symbol"||s=="boolean"||o==null||t(o)?!0:n.test(o)||!e.test(o)||a!=null&&o in Object(a)}return Ze=i,Ze}var Qe,aa;function tn(){if(aa)return Qe;aa=1;function r(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}return Qe=r,Qe}var rn,sa;function Du(){if(sa)return rn;sa=1;var r=jr(),t=tn(),e="[object AsyncFunction]",n="[object Function]",i="[object GeneratorFunction]",o="[object Proxy]";function a(s){if(!t(s))return!1;var u=r(s);return u==n||u==i||u==e||u==o}return rn=a,rn}var en,ua;function Fu(){if(ua)return en;ua=1;var r=xe(),t=r["__core-js_shared__"];return en=t,en}var nn,fa;function Uu(){if(fa)return nn;fa=1;var r=Fu(),t=(function(){var n=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""})();function e(n){return!!t&&t in n}return nn=e,nn}var on,ca;function Hu(){if(ca)return on;ca=1;var r=Function.prototype,t=r.toString;function e(n){if(n!=null){try{return t.call(n)}catch{}try{return n+""}catch{}}return""}return on=e,on}var an,ha;function Ku(){if(ha)return an;ha=1;var r=Du(),t=Uu(),e=tn(),n=Hu(),i=/[\\^$.*+?()[\]{}|]/g,o=/^\[object .+?Constructor\]$/,a=Function.prototype,s=Object.prototype,u=a.toString,f=s.hasOwnProperty,c=RegExp("^"+u.call(f).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function h(p){if(!e(p)||t(p))return!1;var _=r(p)?c:o;return _.test(n(p))}return an=h,an}var sn,pa;function Wu(){if(pa)return sn;pa=1;function r(t,e){return t?.[e]}return sn=r,sn}var un,_a;function da(){if(_a)return un;_a=1;var r=Ku(),t=Wu();function e(n,i){var o=t(n,i);return r(o)?o:void 0}return un=e,un}var fn,la;function Pr(){if(la)return fn;la=1;var r=da(),t=r(Object,"create");return fn=t,fn}var cn,va;function Gu(){if(va)return cn;va=1;var r=Pr();function t(){this.__data__=r?r(null):{},this.size=0}return cn=t,cn}var hn,ya;function Yu(){if(ya)return hn;ya=1;function r(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}return hn=r,hn}var pn,ga;function Ju(){if(ga)return pn;ga=1;var r=Pr(),t="__lodash_hash_undefined__",e=Object.prototype,n=e.hasOwnProperty;function i(o){var a=this.__data__;if(r){var s=a[o];return s===t?void 0:s}return n.call(a,o)?a[o]:void 0}return pn=i,pn}var _n,ma;function Xu(){if(ma)return _n;ma=1;var r=Pr(),t=Object.prototype,e=t.hasOwnProperty;function n(i){var o=this.__data__;return r?o[i]!==void 0:e.call(o,i)}return _n=n,_n}var dn,Sa;function Vu(){if(Sa)return dn;Sa=1;var r=Pr(),t="__lodash_hash_undefined__";function e(n,i){var o=this.__data__;return this.size+=this.has(n)?0:1,o[n]=r&&i===void 0?t:i,this}return dn=e,dn}var ln,wa;function Zu(){if(wa)return ln;wa=1;var r=Gu(),t=Yu(),e=Ju(),n=Xu(),i=Vu();function o(a){var s=-1,u=a==null?0:a.length;for(this.clear();++s<u;){var f=a[s];this.set(f[0],f[1])}}return o.prototype.clear=r,o.prototype.delete=t,o.prototype.get=e,o.prototype.has=n,o.prototype.set=i,ln=o,ln}var vn,ba;function Qu(){if(ba)return vn;ba=1;function r(){this.__data__=[],this.size=0}return vn=r,vn}var yn,Ia;function tf(){if(Ia)return yn;Ia=1;function r(t,e){return t===e||t!==t&&e!==e}return yn=r,yn}var gn,qa;function Nr(){if(qa)return gn;qa=1;var r=tf();function t(e,n){for(var i=e.length;i--;)if(r(e[i][0],n))return i;return-1}return gn=t,gn}var mn,Ma;function rf(){if(Ma)return mn;Ma=1;var r=Nr(),t=Array.prototype,e=t.splice;function n(i){var o=this.__data__,a=r(o,i);if(a<0)return!1;var s=o.length-1;return a==s?o.pop():e.call(o,a,1),--this.size,!0}return mn=n,mn}var Sn,Oa;function ef(){if(Oa)return Sn;Oa=1;var r=Nr();function t(e){var n=this.__data__,i=r(n,e);return i<0?void 0:n[i][1]}return Sn=t,Sn}var wn,Ea;function nf(){if(Ea)return wn;Ea=1;var r=Nr();function t(e){return r(this.__data__,e)>-1}return wn=t,wn}var bn,Ta;function of(){if(Ta)return bn;Ta=1;var r=Nr();function t(e,n){var i=this.__data__,o=r(i,e);return o<0?(++this.size,i.push([e,n])):i[o][1]=n,this}return bn=t,bn}var In,Ra;function af(){if(Ra)return In;Ra=1;var r=Qu(),t=rf(),e=ef(),n=nf(),i=of();function o(a){var s=-1,u=a==null?0:a.length;for(this.clear();++s<u;){var f=a[s];this.set(f[0],f[1])}}return o.prototype.clear=r,o.prototype.delete=t,o.prototype.get=e,o.prototype.has=n,o.prototype.set=i,In=o,In}var qn,za;function sf(){if(za)return qn;za=1;var r=da(),t=xe(),e=r(t,"Map");return qn=e,qn}var Mn,Ca;function uf(){if(Ca)return Mn;Ca=1;var r=Zu(),t=af(),e=sf();function n(){this.size=0,this.__data__={hash:new r,map:new(e||t),string:new r}}return Mn=n,Mn}var On,Aa;function ff(){if(Aa)return On;Aa=1;function r(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}return On=r,On}var En,$a;function Dr(){if($a)return En;$a=1;var r=ff();function t(e,n){var i=e.__data__;return r(n)?i[typeof n=="string"?"string":"hash"]:i.map}return En=t,En}var Tn,ka;function cf(){if(ka)return Tn;ka=1;var r=Dr();function t(e){var n=r(this,e).delete(e);return this.size-=n?1:0,n}return Tn=t,Tn}var Rn,Ba;function hf(){if(Ba)return Rn;Ba=1;var r=Dr();function t(e){return r(this,e).get(e)}return Rn=t,Rn}var zn,ja;function pf(){if(ja)return zn;ja=1;var r=Dr();function t(e){return r(this,e).has(e)}return zn=t,zn}var Cn,xa;function _f(){if(xa)return Cn;xa=1;var r=Dr();function t(e,n){var i=r(this,e),o=i.size;return i.set(e,n),this.size+=i.size==o?0:1,this}return Cn=t,Cn}var An,La;function df(){if(La)return An;La=1;var r=uf(),t=cf(),e=hf(),n=pf(),i=_f();function o(a){var s=-1,u=a==null?0:a.length;for(this.clear();++s<u;){var f=a[s];this.set(f[0],f[1])}}return o.prototype.clear=r,o.prototype.delete=t,o.prototype.get=e,o.prototype.has=n,o.prototype.set=i,An=o,An}var $n,Pa;function lf(){if(Pa)return $n;Pa=1;var r=df(),t="Expected a function";function e(n,i){if(typeof n!="function"||i!=null&&typeof i!="function")throw new TypeError(t);var o=function(){var a=arguments,s=i?i.apply(this,a):a[0],u=o.cache;if(u.has(s))return u.get(s);var f=n.apply(this,a);return o.cache=u.set(s,f)||u,f};return o.cache=new(e.Cache||r),o}return e.Cache=r,$n=e,$n}var kn,Na;function vf(){if(Na)return kn;Na=1;var r=lf(),t=500;function e(n){var i=r(n,function(a){return o.size===t&&o.clear(),a}),o=i.cache;return i}return kn=e,kn}var Bn,Da;function yf(){if(Da)return Bn;Da=1;var r=vf(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,e=/\\(\\)?/g,n=r(function(i){var o=[];return i.charCodeAt(0)===46&&o.push(""),i.replace(t,function(a,s,u,f){o.push(u?f.replace(e,"$1"):s||a)}),o});return Bn=n,Bn}var jn,Fa;function gf(){if(Fa)return jn;Fa=1;function r(t,e){for(var n=-1,i=t==null?0:t.length,o=Array(i);++n<i;)o[n]=e(t[n],n,t);return o}return jn=r,jn}var xn,Ua;function Ln(){if(Ua)return xn;Ua=1;var r=Br(),t=gf(),e=Mt(),n=Lr(),i=r?r.prototype:void 0,o=i?i.toString:void 0;function a(s){if(typeof s=="string")return s;if(e(s))return t(s,a)+"";if(n(s))return o?o.call(s):"";var u=s+"";return u=="0"&&1/s==-1/0?"-0":u}return xn=a,xn}var Pn,Ha;function Nn(){if(Ha)return Pn;Ha=1;var r=Ln();function t(e){return e==null?"":r(e)}return Pn=t,Pn}var Dn,Ka;function mf(){if(Ka)return Dn;Ka=1;var r=Mt(),t=Nu(),e=yf(),n=Nn();function i(o,a){return r(o)?o:t(o,a)?[o]:e(n(o))}return Dn=i,Dn}var Fn,Wa;function Sf(){if(Wa)return Fn;Wa=1;var r=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function e(n,i){var o=typeof n;return i=i??r,!!i&&(o=="number"||o!="symbol"&&t.test(n))&&n>-1&&n%1==0&&n<i}return Fn=e,Fn}var Un,Ga;function wf(){if(Ga)return Un;Ga=1;var r=9007199254740991;function t(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=r}return Un=t,Un}var Hn,Ya;function bf(){if(Ya)return Hn;Ya=1;var r=Lr();function t(e){if(typeof e=="string"||r(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}return Hn=t,Hn}var Kn,Ja;function If(){if(Ja)return Kn;Ja=1;var r=mf(),t=Vo(),e=Mt(),n=Sf(),i=wf(),o=bf();function a(s,u,f){u=r(u,s);for(var c=-1,h=u.length,p=!1;++c<h;){var _=o(u[c]);if(!(p=s!=null&&f(s,_)))break;s=s[_]}return p||++c!=h?p:(h=s==null?0:s.length,!!h&&i(h)&&n(_,h)&&(e(s)||t(s)))}return Kn=a,Kn}var Wn,Xa;function qf(){if(Xa)return Wn;Xa=1;var r=Pu(),t=If();function e(n,i){return n!=null&&t(n,i,r)}return Wn=e,Wn}qf();var Gn,Va;function Mf(){if(Va)return Gn;Va=1;var r=Math.max,t=Math.min;function e(n,i,o){return n>=t(i,o)&&n<r(i,o)}return Gn=e,Gn}var Yn,Za;function Of(){if(Za)return Yn;Za=1;var r=/\s/;function t(e){for(var n=e.length;n--&&r.test(e.charAt(n)););return n}return Yn=t,Yn}var Jn,Qa;function Ef(){if(Qa)return Jn;Qa=1;var r=Of(),t=/^\s+/;function e(n){return n&&n.slice(0,r(n)+1).replace(t,"")}return Jn=e,Jn}var Xn,ts;function rs(){if(ts)return Xn;ts=1;var r=Ef(),t=tn(),e=Lr(),n=NaN,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,a=/^0o[0-7]+$/i,s=parseInt;function u(f){if(typeof f=="number")return f;if(e(f))return n;if(t(f)){var c=typeof f.valueOf=="function"?f.valueOf():f;f=t(c)?c+"":c}if(typeof f!="string")return f===0?f:+f;f=r(f);var h=o.test(f);return h||a.test(f)?s(f.slice(2),h?2:8):i.test(f)?n:+f}return Xn=u,Xn}var Vn,es;function ns(){if(es)return Vn;es=1;var r=rs(),t=1/0,e=17976931348623157e292;function n(i){if(!i)return i===0?i:0;if(i=r(i),i===t||i===-t){var o=i<0?-1:1;return o*e}return i===i?i:0}return Vn=n,Vn}var Zn,is;function Tf(){if(is)return Zn;is=1;var r=Mf(),t=ns(),e=rs();function n(i,o,a){return o=t(o),a===void 0?(a=o,o=0):a=t(a),i=e(i),r(i,o,a)}return Zn=n,Zn}var Rf=Tf();const zf=zu(Rf);var Qn,os;function ti(){if(os)return Qn;os=1;var r=ns();function t(e){var n=r(e),i=n%1;return n===n?i?n-i:n:0}return Qn=t,Qn}var ri,as;function Cf(){if(as)return ri;as=1;var r=ti();function t(e){return typeof e=="number"&&e==r(e)}return ri=t,ri}Cf();var ei,ss;function us(){if(ss)return ei;ss=1;function r(t,e,n){var i=-1,o=t.length;e<0&&(e=-e>o?0:o+e),n=n>o?o:n,n<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var a=Array(o);++i<o;)a[i]=t[i+e];return a}return ei=r,ei}var ni,fs;function Af(){if(fs)return ni;fs=1;var r=us(),t=ti();function e(n,i,o){return n&&n.length?(i=o||i===void 0?1:t(i),r(n,0,i<0?0:i)):[]}return ni=e,ni}Af();const lr="black",vr="white",nt=null;class cs extends $({dimensions:19,moves:B()},"Board"){constructor(t=19,...e){super({dimensions:t,moves:B(e.map(n=>[n.coordinate,n.color]))})}toMap(t=null){const e={[lr]:lr,[vr]:vr,[nt]:nt},n=t||e;return Array(this.dimensions).fill(nt).map((i,o)=>Array(this.dimensions).fill(nt).map((a,s)=>{const u=this.moves.get(ot(s,o),nt);return n[u]||e[u]}))}}function hs(...r){return Reflect.construct(cs,r)}hs.prototype=cs.prototype;class ps extends $({x:0,y:0},"Coordinate"){constructor(t,e){super({x:t,y:e})}}function ot(...r){return Reflect.construct(ps,r)}ot.prototype=ps.prototype;class _s extends $({coordinate:ot(),color:nt},"Move"){constructor(t,e){super({coordinate:t,color:e})}}function ds(...r){return Reflect.construct(_s,r)}ds.prototype=_s.prototype,ot(4,4),ot(6,6),ot(9,9);function $f(r,t){const{x:e,y:n}=t,i=o=>zf(o,r.dimensions);return _t.of(ot(e,n+1),ot(e,n-1),ot(e+1,n),ot(e-1,n)).filter(o=>i(o.x)&&i(o.y))}function Fr(r,t,e){const n=e===void 0?r.moves.get(t,nt):e;return $f(r,t).filter(i=>r.moves.get(i,nt)===n)}function ls(r,t){let e=_t(),n=_t.of(t);for(;!n.isEmpty();){const i=n.first(),o=Fr(r,i);e=e.add(i),n=n.rest().union(o.subtract(e))}return e}function ii(r){return r===lr?vr:r===vr?lr:nt}function kf(r,t){return ls(r,t).reduce((e,n)=>e.union(Fr(r,n,nt)),_t())}function oi(r,t){return kf(r,t).size}function vs(r,t){const e=oi(r.setIn(["moves",t.coordinate],t.color),t.coordinate)>0,n=Fr(r,t.coordinate,ii(t.color)).some(i=>oi(r,i)===1);return e||n}function Bf(r,t){return r.setIn(["moves"],t.reduce((e,n)=>e.delete(n),r.moves))}function jf(r,t){if(!vs(r,t))throw new Error("Not a valid position");if(r.moves.has(t.coordinate))throw new Error("There is already a stone there");const e=Fr(r,t.coordinate,ii(t.color)).reduce((n,i)=>n.union(oi(r,i)===1?ls(r,i):_t()),_t());return Bf(r,e).setIn(["moves",t.coordinate],t.color)}function xf(r,t,e,n=!1){const i=r.moves.get(t,nt);if(!n&&ii(i)===e)throw new Error("There is already a stone there. Pass force=true to override.");return r.setIn(["moves",t],e)}const yt={BLACK:lr,Board:hs,Coordinate:ot,EMPTY:nt,Move:ds,WHITE:vr,addMove:jf,isLegalMove:vs,placeStone:xf};Mt();var ai,ys;function Lf(){if(ys)return ai;ys=1;var r=jr(),t=Mt(),e=xr(),n="[object String]";function i(o){return typeof o=="string"||!t(o)&&e(o)&&r(o)==n}return ai=i,ai}Lf();var si,gs;function Pf(){if(gs)return si;gs=1;function r(t,e,n){return t===t&&(n!==void 0&&(t=t<=n?t:n),e!==void 0&&(t=t>=e?t:e)),t}return si=r,si}var ui,ms;function Nf(){if(ms)return ui;ms=1;var r=Pf(),t=Ln(),e=ti(),n=Nn();function i(o,a,s){return o=n(o),s=s==null?0:r(e(s),0,o.length),a=t(a),o.slice(s,s+a.length)==a}return ui=i,ui}Nf();var fi,Ss;function Df(){if(Ss)return fi;Ss=1;var r=us();function t(e,n,i){var o=e.length;return i=i===void 0?o:i,!n&&i>=o?e:r(e,n,i)}return fi=t,fi}var ci,ws;function Ff(){if(ws)return ci;ws=1;function r(t,e,n,i){for(var o=t.length,a=n+(i?1:-1);i?a--:++a<o;)if(e(t[a],a,t))return a;return-1}return ci=r,ci}var hi,bs;function Uf(){if(bs)return hi;bs=1;function r(t){return t!==t}return hi=r,hi}var pi,Is;function Hf(){if(Is)return pi;Is=1;function r(t,e,n){for(var i=n-1,o=t.length;++i<o;)if(t[i]===e)return i;return-1}return pi=r,pi}var _i,qs;function Kf(){if(qs)return _i;qs=1;var r=Ff(),t=Uf(),e=Hf();function n(i,o,a){return o===o?e(i,o,a):r(i,t,a)}return _i=n,_i}var di,Ms;function Wf(){if(Ms)return di;Ms=1;var r=Kf();function t(e,n){for(var i=-1,o=e.length;++i<o&&r(n,e[i],0)>-1;);return i}return di=t,di}var li,Os;function Gf(){if(Os)return li;Os=1;function r(t){return t.split("")}return li=r,li}var vi,Es;function Yf(){if(Es)return vi;Es=1;var r="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+e+n,o="\\ufe0e\\ufe0f",a="\\u200d",s=RegExp("["+a+r+i+o+"]");function u(f){return s.test(f)}return vi=u,vi}var yi,Ts;function Jf(){if(Ts)return yi;Ts=1;var r="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+e+n,o="\\ufe0e\\ufe0f",a="["+r+"]",s="["+i+"]",u="\\ud83c[\\udffb-\\udfff]",f="(?:"+s+"|"+u+")",c="[^"+r+"]",h="(?:\\ud83c[\\udde6-\\uddff]){2}",p="[\\ud800-\\udbff][\\udc00-\\udfff]",_="\\u200d",d=f+"?",v="["+o+"]?",w="(?:"+_+"(?:"+[c,h,p].join("|")+")"+v+d+")*",I=v+d+w,y="(?:"+[c+s+"?",s,h,p,a].join("|")+")",l=RegExp(u+"(?="+u+")|"+y+I,"g");function g(A){return A.match(l)||[]}return yi=g,yi}var gi,Rs;function Xf(){if(Rs)return gi;Rs=1;var r=Gf(),t=Yf(),e=Jf();function n(i){return t(i)?e(i):r(i)}return gi=n,gi}var mi,zs;function Vf(){if(zs)return mi;zs=1;var r=Ln(),t=Df(),e=Wf(),n=Xf(),i=Nn(),o=/^\s+/;function a(s,u,f){if(s=i(s),s&&(f||u===void 0))return s.replace(o,"");if(!s||!(u=r(u)))return s;var c=n(s),h=e(c,n(u));return t(c,h).join("")}return mi=a,mi}Vf();const K=yt.BLACK,Si=yt.Board,Ot=yt.Coordinate,yr=yt.EMPTY,kt=yt.Move,at=yt.WHITE,Xt=yt.addMove,Cs=yt.isLegalMove,Zf=yt.placeStone;function Ur(r){return`
2
2
  <div style="background: #fee2e2; color: #991b1b; padding: 1rem; border-radius: 4px;">${r}</div>
3
- `}function Si(r,t,e){const n=r.dimensions,i=t??n,o=e??n,a=30,s=a,u=a*.4,f=n===o,c=n===i,h=(f?o-1:o)*a+s*2,p=(c?i-1:i)*a+s*2;let _=`<svg width="${h}" height="${p}" xmlns="http://www.w3.org/2000/svg">`;_+=`<rect width="${h}" height="${p}" fill="#dcb35c"/>`;const d=o<n,v=i<n,w=s+(d?o:o-1)*a,I=s+(v?i:i-1)*a;for(let l=0;l<o;l++){const g=s+l*a;_+=`<line x1="${g}" y1="${s}" x2="${g}" y2="${I}" stroke="#000" stroke-width="1"/>`}for(let l=0;l<i;l++){const g=s+l*a;_+=`<line x1="${s}" y1="${g}" x2="${w}" y2="${g}" stroke="#000" stroke-width="1"/>`}const y=[];n===9?y.push([2,2],[2,6],[4,4],[6,2],[6,6]):n===13?y.push([3,3],[3,9],[6,6],[9,3],[9,9]):n===19&&y.push([3,3],[3,9],[3,15],[9,3],[9,9],[9,15],[15,3],[15,9],[15,15]);for(const[l,g]of y)if(l<i&&g<o){const A=s+g*a,q=s+l*a;_+=`<circle cx="${A}" cy="${q}" r="3" fill="#000"/>`}for(let l=0;l<i;l++)for(let g=0;g<o;g++){const A=r.moves.get(vr(l,g),yr);if(A!==yr){const q=s+g*a,x=s+l*a;A===tt?_+=`<circle cx="${q}" cy="${x}" r="${u}" fill="#000" stroke="#000" stroke-width="1"/>`:A===ft&&(_+=`<circle cx="${q}" cy="${x}" r="${u}" fill="#fff" stroke="#000" stroke-width="1"/>`)}}return _+="</svg>",_}class ct extends Error{constructor(t){super(t),this.name="ValidationError"}}function wi(r,t){const e={};let n=null,i=!1;for(let o=t;o<r.length;o++){const a=r[o].trim();if(a==="")continue;const s=a.indexOf(":");if(s>0){const u=a.substring(0,s).trim(),f=a.substring(s+1).trim();e[u]=f,n=u,i=f===""}else n&&i&&(Array.isArray(e[n])?e[n].push(a):e[n]=[a])}return e}function bi(r,t={}){const{allowEmpty:e=!1,validateCharacters:n=!0,ignoreRules:i=!1}=t;let o=1;for(;o<r.length&&r[o].trim()==="";)o++;if(o>=r.length)throw new ct("No board definition or options found");const a=[];let s=o;for(let y=o;y<r.length;y++){const l=r[y];if(l.trim()===""){s=y;break}if(l.indexOf(":")>0){s=y;break}a.push(l),s=y+1}const u=wi(r,s);let f;if(u.size){const y=u.size;if(Array.isArray(y))throw new ct("Size option cannot have multiple values");const l=parseInt(y,10);if(isNaN(l)||l<=1||l>19)throw new ct("Size must be a positive integer greater than 1 and less than or equal to 19");f=l}if(a.length===0){if(!e)throw new ct("Board definition is required");if(!f)throw new ct('Empty board requires a "size" option');return{board:mi(f),rowCount:f,columnCount:f,configStartIndex:s,otherMarks:{}}}const c=a.map(y=>y.replace(/\s/g,"").length),h=c[0];if(!c.every(y=>y===h))throw new ct("All board rows must have the same number of non-space characters");const p=a.length,_=a[0].replace(/\s/g,"").length,d=p===_;if(f&&(p>f||_>f))throw new ct(`Board dimensions (${p}x${_}) exceed specified size (${f})`);if(!d&&!f)throw new ct(`Rectangle boards require a "size" option (found ${p}x${_} board)`);f||(f=p);const v=[],w={};for(let y=0;y<a.length;y++){const l=a[y];let g=0;for(let A=0;A<l.length;A++){const q=l[A];if(q===" ")continue;const x=/^[.+XOxo]$/.test(q);if(n&&!x)throw new ct(`Invalid board character '${q}' at row ${y+1}, col ${g+1}. Valid characters: . or + (empty), X or x (black stone), O or o (white stone)`);let b=yr;q==="X"||q==="x"?b=tt:q==="O"||q==="o"?b=ft:q==="."||q==="+"?b=yr:n||(w[q]||(w[q]=[]),w[q].push(vr(y,g))),b!==yr&&v.push(zt(vr(y,g),b)),g++}}let I;if(i){I=mi(f);for(const y of v)I=Vf(I,y.coordinate,y.color)}else I=mi(f,...v);return{board:I,rowCount:p,columnCount:_,configStartIndex:s,otherMarks:w}}const ht={Success:"success",Failure:"failure",Incomplete:"incomplete"};class As{parsedBoard;element;constructor(t,e){this.element=t;let n=1;for(;n<e.length&&e[n].trim()==="";)n++;let i=n;for(let u=n;u<e.length;u++){const f=e[u];if(f.trim()===""||f.indexOf(":")>0){i=u;break}}const a=wi(e,i)["ignore-rules"],s=a==="true"||a==="1";this.parsedBoard=bi(e,{ignoreRules:s})}render(){const t=this.element,{board:e,rowCount:n,columnCount:i}=this.parsedBoard,o=Si(e,n,i);t.innerHTML=o}}class Cs{parsedBoard;element;toPlay;sequenceTree;result;currentTree;playedMoves;currentBoard;isBlackTurn;constructor(t,e){this.element=t;const n=bi(e,{allowEmpty:!1,validateCharacters:!1});for(const[l,g]of Object.entries(n.otherMarks))if(g.length>1)throw new Error(`Mark '${l}' appears at multiple coordinates. Each mark must be unique.`);const i=wi(e,n.configStartIndex),o=i.black,a=i.white,s=o?Array.isArray(o)?o:o.split(",").map(l=>l.trim()).filter(l=>l.length>0):[],u=a?Array.isArray(a)?a:a.split(",").map(l=>l.trim()).filter(l=>l.length>0):[],f=new Set(u),c=s.filter(l=>f.has(l));if(c.length>0)throw new Error(`Marks cannot appear in both black and white: ${c.join(", ")}`);const h=new Set(Object.keys(n.otherMarks));for(const l of s)if(!h.has(l))throw new Error(`Black mark '${l}' does not appear in the board`);for(const l of u)if(!h.has(l))throw new Error(`White mark '${l}' does not appear in the board`);const p=i["to-play"],_=p?(Array.isArray(p)?p[0]:p).toLowerCase():"";if(_&&_!=="black"&&_!=="white")throw new Error(`Invalid to-play value '${_}'. Must be 'black' or 'white'`);this.toPlay=_==="white"?ft:tt;let d=n.board;for(const l of s){const g=n.otherMarks[l];for(const A of g)d=Wt(d,zt(A,tt))}for(const l of u){const g=n.otherMarks[l];for(const A of g)d=Wt(d,zt(A,ft))}this.parsedBoard={...n,board:d},this.result=ht.Incomplete,this.currentTree=J(),this.playedMoves=[],this.currentBoard=d,this.isBlackTurn=this.toPlay===tt;const v=(l,g)=>{const A=l.split(">").map(b=>b.trim()).filter(b=>b.length>0);for(const b of A)if(!n.otherMarks[b])throw new Error(`${g} '${l}': mark '${b}' does not appear in the board`);let q=d,x=this.toPlay;for(let b=0;b<A.length;b++){const lt=A[b],At=n.otherMarks[lt][0],Yt=zt(At,x);if(!zs(q,Yt))throw new Error(`${g} '${l}': move ${b+1} (${lt}) is illegal`);try{q=Wt(q,Yt)}catch(Jt){const nc=Jt instanceof Error?Jt.message:String(Jt);throw new Error(`${g} '${l}': move ${b+1} (${lt}) failed - ${nc}`)}x=x===tt?ft:tt}},w=i.solutions,I=[];if(w){const l=Array.isArray(w)?w:[w];for(const g of l)v(g,"Solution"),I.push({sequence:g,isSolution:!0})}const y=i.sequences;if(y){const l=Array.isArray(y)?y:[y];for(const g of l)v(g,"Sequence"),I.push({sequence:g,isSolution:!1})}this.sequenceTree=J();for(const{sequence:l,isSolution:g}of I){const A=l.split(">").map(b=>b.trim()).filter(b=>b.length>0),q=[];for(const b of A)q.push(n.otherMarks[b][0]);let x=J();for(let b=q.length-1;b>=0;b--){const lt=q[b],Gt=b===q.length-1;let At;Gt?At=g?ht.Success:ht.Failure:At=ht.Incomplete;const Yt={result:At,children:x};x=J().set(lt,Yt)}this.sequenceTree=this.mergeSequenceTrees(this.sequenceTree,x)}this.currentTree=this.sequenceTree}mergeSequenceTrees(t,e){return e.reduce((n,i,o)=>{const a=n.get(o);if(a){const s=this.mergeSequenceTrees(a.children,i.children),c={result:s.size>0?ht.Incomplete:a.result,children:s};return n.set(o,c)}else return n.set(o,i)},t)}handleUserMove(t){const e=this.currentTree.get(t),n=this.isBlackTurn?tt:ft,i=zt(t,n);if(this.playedMoves.push(i),this.currentBoard=Wt(this.currentBoard,i),this.isBlackTurn=!this.isBlackTurn,!e){this.result!==ht.Success&&(this.result=ht.Failure),this.currentTree=J(),this.render();return}this.currentTree=e.children,this.result=e.result,this.render(),e.children.size>0&&setTimeout(()=>this.playComputerResponse(),500)}playComputerResponse(){const t=Array.from(this.currentTree.entries());if(t.length===0)return;const e=Math.floor(Math.random()*t.length),[n,i]=t[e],o=this.isBlackTurn?tt:ft,a=zt(n,o);this.playedMoves.push(a),this.currentBoard=Wt(this.currentBoard,a),this.isBlackTurn=!this.isBlackTurn,this.currentTree=i.children,this.result=i.result,this.render()}reset(){this.currentTree=this.sequenceTree,this.playedMoves=[],this.currentBoard=this.parsedBoard.board,this.isBlackTurn=this.toPlay===tt,this.result=ht.Incomplete,this.render()}render(){const t=this.element,{rowCount:e,columnCount:n}=this.parsedBoard;let o=Si(this.currentBoard,e,n);const a=`reset-${Math.random().toString(36).substr(2,9)}`,s="padding: 0.5rem 1rem; margin: 0.5rem 0.25rem; border: 1px solid #ccc; border-radius: 4px; background: #fff; cursor: pointer; font-size: 0.9rem;";o+='<div style="margin-top: 1rem; display: flex; align-items: center;">',o+=`<button id="${a}" style="${s}">Reset</button>`,this.result===ht.Success?o+='<span style="margin-left: 1rem; font-weight: 600; font-size: 1.1rem; color: #155724;">Success!</span>':this.result===ht.Failure&&(o+='<span style="margin-left: 1rem; font-weight: 600; font-size: 1.1rem; color: #721c24;">Incorrect</span>'),o+="</div>",t.innerHTML=o;const u=t.querySelector("svg");u&&(u.style.cursor="pointer",u.addEventListener("click",c=>{const h=c,p=u.getBoundingClientRect(),_=h.clientX-p.left,d=h.clientY-p.top,v=30,w=v,I=Math.round((_-w)/v),y=Math.round((d-w)/v);if(y>=0&&y<e&&I>=0&&I<n){const l=vr(y,I);this.handleUserMove(l)}}));const f=document.getElementById(a);f&&f.addEventListener("click",()=>this.reset())}}class $s{parsedBoard;element;currentBoard;initialBoard;history;currentMoveIndex;isBlackTurn;constructor(t,e){this.element=t,this.parsedBoard=bi(e,{allowEmpty:!0}),this.initialBoard=this.parsedBoard.board,this.currentBoard=this.parsedBoard.board,this.history=[],this.currentMoveIndex=-1,this.isBlackTurn=!0}rebuildBoard(){let t=this.initialBoard;for(let e=0;e<=this.currentMoveIndex;e++){const n=this.history[e];n.type==="move"&&(t=Wt(t,n.move))}if(this.currentBoard=t,this.currentMoveIndex===-1)this.isBlackTurn=!0;else{const e=this.history[this.currentMoveIndex],n=e.type==="move"?e.move.color:e.color;this.isBlackTurn=n===ft}}undo(){this.currentMoveIndex>=0&&(this.currentMoveIndex--,this.rebuildBoard(),this.render())}redo(){this.currentMoveIndex<this.history.length-1&&(this.currentMoveIndex++,this.rebuildBoard(),this.render())}pass(){this.history=this.history.slice(0,this.currentMoveIndex+1);const t=this.isBlackTurn?tt:ft;this.history.push({type:"pass",color:t}),this.currentMoveIndex++,this.isBlackTurn=!this.isBlackTurn,this.render()}reset(){this.history=[],this.currentMoveIndex=-1,this.currentBoard=this.initialBoard,this.isBlackTurn=!0,this.render()}render(){const t=this.element,{rowCount:e,columnCount:n}=this.parsedBoard,i=Si(this.currentBoard,e,n),o=`turn-info-${Math.random().toString(36).substr(2,9)}`,a=`undo-${Math.random().toString(36).substr(2,9)}`,s=`redo-${Math.random().toString(36).substr(2,9)}`,u=`pass-${Math.random().toString(36).substr(2,9)}`,f=`reset-${Math.random().toString(36).substr(2,9)}`;let c='<div class="freeplay-container">';c+=`<div id="${o}" style="margin-bottom: 1rem; padding: 0.5rem; font-weight: 600; font-size: 1.1rem;">${this.isBlackTurn?"Black":"White"} to play</div>`,c+=i;const h="padding: 0.5rem 1rem; margin: 0.5rem 0.25rem; border: 1px solid #ccc; border-radius: 4px; background: #fff; cursor: pointer; font-size: 0.9rem;",p="padding: 0.5rem 1rem; margin: 0.5rem 0.25rem; border: 1px solid #ccc; border-radius: 4px; background: #f0f0f0; cursor: not-allowed; font-size: 0.9rem; color: #999;";c+='<div style="margin-top: 1rem;">',c+=`<button id="${a}" style="${this.currentMoveIndex>=0?h:p}" ${this.currentMoveIndex<0?"disabled":""}>← Undo</button>`,c+=`<button id="${s}" style="${this.currentMoveIndex<this.history.length-1?h:p}" ${this.currentMoveIndex>=this.history.length-1?"disabled":""}>Redo →</button>`,c+=`<button id="${u}" style="${h}">Pass</button>`,c+=`<button id="${f}" style="${h}">Reset</button>`,c+="</div>",c+="</div>",t.innerHTML=c;const _=t.querySelector("svg"),d=document.getElementById(a),v=document.getElementById(s),w=document.getElementById(u),I=document.getElementById(f);_&&(_.style.cursor="pointer",_.addEventListener("click",y=>{const l=y,g=_.getBoundingClientRect(),A=l.clientX-g.left,q=l.clientY-g.top,x=30,b=x,lt=Math.round((A-b)/x),Gt=Math.round((q-b)/x);if(Gt>=0&&Gt<e&&lt>=0&&lt<n){const At=vr(Gt,lt),Yt=this.isBlackTurn?tt:ft,Jt=zt(At,Yt);zs(this.currentBoard,Jt)&&(this.history=this.history.slice(0,this.currentMoveIndex+1),this.history.push({type:"move",move:Jt}),this.currentMoveIndex++,this.rebuildBoard(),this.render())}})),d&&d.addEventListener("click",()=>this.undo()),v&&v.addEventListener("click",()=>this.redo()),w&&w.addEventListener("click",()=>this.pass()),I&&I.addEventListener("click",()=>this.reset())}}const Zf={static:As,freeplay:$s,problem:Cs},Qf="0.0.0",tc=".godash-diagram";function rc(r,t){const e=t.split(`
4
- `);if(e.length===0){r.innerHTML=Fr("Empty diagram source");return}const n=e[0].trim();try{let i;switch(n){case"static":i=new As(r,e);break;case"freeplay":i=new $s(r,e);break;case"problem":i=new Cs(r,e);break;default:r.innerHTML=Fr(`Unsupported diagram type "${n}". Supported types: ${Object.keys(Zf).join(", ")}`);return}i.render()}catch(i){i instanceof ct?r.innerHTML=Fr(i.message):r.innerHTML=Fr(i instanceof Error?i.message:String(i))}}function ec(r,t){const e=r??tc,n=document.querySelectorAll(e);if(n.length===0)throw new Error(`No elements found for selector: ${e}`);n.forEach(i=>{const o=t?.diagramSource??i.textContent??"";rc(i,o)})}qt.init=ec,qt.version=Qf,Object.defineProperty(qt,Symbol.toStringTag,{value:"Module"})}));
3
+ `}function wi(r,t,e){const n=r.dimensions,i=t??n,o=e??n,a=30,s=a,u=a*.4,f=n===o,c=n===i,h=(f?o-1:o)*a+s*2,p=(c?i-1:i)*a+s*2;let _=`<svg width="${h}" height="${p}" xmlns="http://www.w3.org/2000/svg">`;_+=`<rect width="${h}" height="${p}" fill="#dcb35c"/>`;const d=o<n,v=i<n,w=s+(d?o:o-1)*a,I=s+(v?i:i-1)*a;for(let l=0;l<o;l++){const g=s+l*a;_+=`<line x1="${g}" y1="${s}" x2="${g}" y2="${I}" stroke="#000" stroke-width="1"/>`}for(let l=0;l<i;l++){const g=s+l*a;_+=`<line x1="${s}" y1="${g}" x2="${w}" y2="${g}" stroke="#000" stroke-width="1"/>`}const y=[];n===9?y.push([2,2],[2,6],[4,4],[6,2],[6,6]):n===13?y.push([3,3],[3,9],[6,6],[9,3],[9,9]):n===19&&y.push([3,3],[3,9],[3,15],[9,3],[9,9],[9,15],[15,3],[15,9],[15,15]);for(const[l,g]of y)if(l<i&&g<o){const A=s+g*a,b=s+l*a;_+=`<circle cx="${A}" cy="${b}" r="3" fill="#000"/>`}for(let l=0;l<i;l++)for(let g=0;g<o;g++){const A=r.moves.get(Ot(l,g),yr);if(A!==yr){const b=s+g*a,q=s+l*a;A===K?_+=`<circle cx="${b}" cy="${q}" r="${u}" fill="#000" stroke="#000" stroke-width="1"/>`:A===at&&(_+=`<circle cx="${b}" cy="${q}" r="${u}" fill="#fff" stroke="#000" stroke-width="1"/>`)}}return _+="</svg>",_}class dt extends Error{constructor(t){super(t),this.name="ValidationError"}}function bi(r,t){const e={};let n=null,i=!1;for(let o=t;o<r.length;o++){const a=r[o].trim();if(a==="")continue;const s=a.indexOf(":");if(s>0){const u=a.substring(0,s).trim(),f=a.substring(s+1).trim();e[u]=f,n=u,i=f===""}else n&&i&&(Array.isArray(e[n])?e[n].push(a):e[n]=[a])}return e}function Ii(r,t={}){const{allowEmpty:e=!1,validateCharacters:n=!0,ignoreRules:i=!1}=t;let o=1;for(;o<r.length&&r[o].trim()==="";)o++;if(o>=r.length)throw new dt("No board definition or options found");const a=[];let s=o;for(let y=o;y<r.length;y++){const l=r[y];if(l.trim()===""){s=y;break}if(l.indexOf(":")>0){s=y;break}a.push(l),s=y+1}const u=bi(r,s);let f;if(u.size){const y=u.size;if(Array.isArray(y))throw new dt("Size option cannot have multiple values");const l=parseInt(y,10);if(isNaN(l)||l<=1||l>19)throw new dt("Size must be a positive integer greater than 1 and less than or equal to 19");f=l}if(a.length===0){if(!e)throw new dt("Board definition is required");if(!f)throw new dt('Empty board requires a "size" option');return{board:Si(f),rowCount:f,columnCount:f,configStartIndex:s,otherMarks:{}}}const c=a.map(y=>y.replace(/\s/g,"").length),h=c[0];if(!c.every(y=>y===h))throw new dt("All board rows must have the same number of non-space characters");const p=a.length,_=a[0].replace(/\s/g,"").length,d=p===_;if(f&&(p>f||_>f))throw new dt(`Board dimensions (${p}x${_}) exceed specified size (${f})`);if(!d&&!f)throw new dt(`Rectangle boards require a "size" option (found ${p}x${_} board)`);f||(f=p);const v=[],w={};for(let y=0;y<a.length;y++){const l=a[y];let g=0;for(let A=0;A<l.length;A++){const b=l[A];if(b===" ")continue;const q=/^[.+XOxo]$/.test(b);if(n&&!q)throw new dt(`Invalid board character '${b}' at row ${y+1}, col ${g+1}. Valid characters: . or + (empty), X or x (black stone), O or o (white stone)`);let M=yr;b==="X"||b==="x"?M=K:b==="O"||b==="o"?M=at:b==="."||b==="+"?M=yr:n||(w[b]||(w[b]=[]),w[b].push(Ot(y,g))),M!==yr&&v.push(kt(Ot(y,g),M)),g++}}let I;if(i){I=Si(f);for(const y of v)I=Zf(I,y.coordinate,y.color)}else I=Si(f,...v);return{board:I,rowCount:p,columnCount:_,configStartIndex:s,otherMarks:w}}const U={Success:"success",Failure:"failure",Incomplete:"incomplete"};class As{parsedBoard;element;constructor(t,e){this.element=t;let n=1;for(;n<e.length&&e[n].trim()==="";)n++;let i=n;for(let u=n;u<e.length;u++){const f=e[u];if(f.trim()===""||f.indexOf(":")>0){i=u;break}}const a=bi(e,i)["ignore-rules"],s=a==="true"||a==="1";this.parsedBoard=Ii(e,{ignoreRules:s})}render(){const t=this.element,{board:e,rowCount:n,columnCount:i}=this.parsedBoard,o=wi(e,n,i);t.innerHTML=o}}class $s{parsedBoard;element;toPlay;sequenceTree;result;currentTree;playedMoves;currentBoard;isBlackTurn;constructor(t,e){this.element=t;const n=Ii(e,{allowEmpty:!1,validateCharacters:!1});for(const[l,g]of Object.entries(n.otherMarks))if(g.length>1)throw new Error(`Mark '${l}' appears at multiple coordinates. Each mark must be unique.`);const i=bi(e,n.configStartIndex),o=i.black,a=i.white,s=o?Array.isArray(o)?o:o.split(",").map(l=>l.trim()).filter(l=>l.length>0):[],u=a?Array.isArray(a)?a:a.split(",").map(l=>l.trim()).filter(l=>l.length>0):[],f=new Set(u),c=s.filter(l=>f.has(l));if(c.length>0)throw new Error(`Marks cannot appear in both black and white: ${c.join(", ")}`);const h=new Set(Object.keys(n.otherMarks));for(const l of s)if(!h.has(l))throw new Error(`Black mark '${l}' does not appear in the board`);for(const l of u)if(!h.has(l))throw new Error(`White mark '${l}' does not appear in the board`);const p=i["to-play"],_=p?(Array.isArray(p)?p[0]:p).toLowerCase():"";if(_&&_!=="black"&&_!=="white")throw new Error(`Invalid to-play value '${_}'. Must be 'black' or 'white'`);this.toPlay=_==="white"?at:K;let d=n.board;for(const l of s){const g=n.otherMarks[l];for(const A of g)d=Xt(d,kt(A,K))}for(const l of u){const g=n.otherMarks[l];for(const A of g)d=Xt(d,kt(A,at))}this.parsedBoard={...n,board:d},this.result=U.Incomplete,this.currentTree=B(),this.playedMoves=[],this.currentBoard=d,this.isBlackTurn=this.toPlay===K;const v=(l,g)=>{const A=l.split(">").map(M=>M.trim()).filter(M=>M.length>0);for(let M=0;M<A.length;M++){const k=A[M];if(k==="*"){if(!(M%2===0))throw new Error(`${g} '${l}': wildcard '*' can only be used for player moves, not computer responses (position ${M+1})`);continue}if(!n.otherMarks[k])throw new Error(`${g} '${l}': mark '${k}' does not appear in the board`)}let b=d,q=this.toPlay;for(let M=0;M<A.length;M++){const k=A[M];if(k==="*"){q=q===K?at:K;continue}const Et=n.otherMarks[k][0],Bt=kt(Et,q);if(!Cs(b,Bt))throw new Error(`${g} '${l}': move ${M+1} (${k}) is illegal`);try{b=Xt(b,Bt)}catch(st){const gr=st instanceof Error?st.message:String(st);throw new Error(`${g} '${l}': move ${M+1} (${k}) failed - ${gr}`)}q=q===K?at:K}},w=i.solutions,I=[];if(w){const l=Array.isArray(w)?w:[w];for(const g of l)v(g,"Solution"),I.push({sequence:g,isSolution:!0})}const y=i.sequences;if(y){const l=Array.isArray(y)?y:[y];for(const g of l)v(g,"Sequence"),I.push({sequence:g,isSolution:!1})}this.sequenceTree=B();for(const{sequence:l,isSolution:g}of I){const A=l.split(">").map(q=>q.trim()).filter(q=>q.length>0),b=[];for(const q of A)q==="*"?b.push("*"):b.push(n.otherMarks[q][0]);if(b[0]==="*"){let q=B();for(let k=b.length-1;k>=1;k--){const Q=b[k];if(Q==="*")throw new Error(`Sequence '${l}': cannot have consecutive wildcards`);const Et=Q,gr={result:k===b.length-1?g?U.Success:U.Failure:U.Incomplete,children:q,wildcardChild:void 0};q=B().set(Et,gr)}const M={result:U.Incomplete,children:q,wildcardChild:void 0};this.sequenceTree=this.applyWildcardToTree(this.sequenceTree,M)}else{let q=B(),M=B(),k=!1;for(let Q=b.length-1;Q>=0;Q--){const Et=b[Q],Bt=Q===b.length-1;let st;if(Bt?st=g?U.Success:U.Failure:st=U.Incomplete,Et==="*"){k=!0;continue}const gr=Et;k&&(M=q,q=B(),k=!1);const ic={result:st,children:q,wildcardChild:M.size>0?{result:U.Incomplete,children:M,wildcardChild:void 0}:void 0};q=B().set(gr,ic),M=B()}this.sequenceTree=this.mergeSequenceTrees(this.sequenceTree,q)}}this.currentTree=this.sequenceTree}applyWildcardToTree(t,e){return t.map(n=>({result:n.result,children:n.children,wildcardChild:e}))}mergeSequenceTrees(t,e){return e.reduce((n,i,o)=>{const a=n.get(o);if(a){const s=this.mergeSequenceTrees(a.children,i.children);let u;if(a.wildcardChild&&i.wildcardChild){const p=B().set(Ot(0,0),a.wildcardChild),_=B().set(Ot(0,0),i.wildcardChild);u=this.mergeSequenceTrees(p,_).get(Ot(0,0))}else u=a.wildcardChild||i.wildcardChild;const h={result:s.size>0||u!==void 0?U.Incomplete:a.result,children:s,wildcardChild:u};return n.set(o,h)}else return n.set(o,i)},t)}handleUserMove(t){let e=this.currentTree.get(t);if(!e){const o=Array.from(this.currentTree.values()).filter(a=>a.wildcardChild);if(o.length>0){const a=o[0];a.wildcardChild&&(e=a.wildcardChild)}}const n=this.isBlackTurn?K:at,i=kt(t,n);if(this.playedMoves.push(i),this.currentBoard=Xt(this.currentBoard,i),this.isBlackTurn=!this.isBlackTurn,!e){this.result!==U.Success&&(this.result=U.Failure),this.currentTree=B(),this.render();return}this.currentTree=e.children,this.result=e.result,this.render(),e.children.size>0&&setTimeout(()=>this.playComputerResponse(),500)}playComputerResponse(){const t=Array.from(this.currentTree.entries());if(t.length===0)return;const e=Math.floor(Math.random()*t.length),[n,i]=t[e],o=this.isBlackTurn?K:at,a=kt(n,o);this.playedMoves.push(a),this.currentBoard=Xt(this.currentBoard,a),this.isBlackTurn=!this.isBlackTurn,this.currentTree=i.children,this.result=i.result,this.render()}reset(){this.currentTree=this.sequenceTree,this.playedMoves=[],this.currentBoard=this.parsedBoard.board,this.isBlackTurn=this.toPlay===K,this.result=U.Incomplete,this.render()}render(){const t=this.element,{rowCount:e,columnCount:n}=this.parsedBoard;let o=wi(this.currentBoard,e,n);const a=`reset-${Math.random().toString(36).substr(2,9)}`,s="padding: 0.5rem 1rem; margin: 0.5rem 0.25rem; border: 1px solid #ccc; border-radius: 4px; background: #fff; cursor: pointer; font-size: 0.9rem;";o+='<div style="margin-top: 1rem; display: flex; align-items: center;">',o+=`<button id="${a}" style="${s}">Reset</button>`,this.result===U.Success?o+='<span style="margin-left: 1rem; font-weight: 600; font-size: 1.1rem; color: #155724;">Success!</span>':this.result===U.Failure&&(o+='<span style="margin-left: 1rem; font-weight: 600; font-size: 1.1rem; color: #721c24;">Incorrect</span>'),o+="</div>",t.innerHTML=o;const u=t.querySelector("svg");u&&(u.style.cursor="pointer",u.addEventListener("click",c=>{const h=c,p=u.getBoundingClientRect(),_=h.clientX-p.left,d=h.clientY-p.top,v=30,w=v,I=Math.round((_-w)/v),y=Math.round((d-w)/v);if(y>=0&&y<e&&I>=0&&I<n){const l=Ot(y,I);this.handleUserMove(l)}}));const f=document.getElementById(a);f&&f.addEventListener("click",()=>this.reset())}}class ks{parsedBoard;element;currentBoard;initialBoard;history;currentMoveIndex;isBlackTurn;constructor(t,e){this.element=t,this.parsedBoard=Ii(e,{allowEmpty:!0}),this.initialBoard=this.parsedBoard.board,this.currentBoard=this.parsedBoard.board,this.history=[],this.currentMoveIndex=-1,this.isBlackTurn=!0}rebuildBoard(){let t=this.initialBoard;for(let e=0;e<=this.currentMoveIndex;e++){const n=this.history[e];n.type==="move"&&(t=Xt(t,n.move))}if(this.currentBoard=t,this.currentMoveIndex===-1)this.isBlackTurn=!0;else{const e=this.history[this.currentMoveIndex],n=e.type==="move"?e.move.color:e.color;this.isBlackTurn=n===at}}undo(){this.currentMoveIndex>=0&&(this.currentMoveIndex--,this.rebuildBoard(),this.render())}redo(){this.currentMoveIndex<this.history.length-1&&(this.currentMoveIndex++,this.rebuildBoard(),this.render())}pass(){this.history=this.history.slice(0,this.currentMoveIndex+1);const t=this.isBlackTurn?K:at;this.history.push({type:"pass",color:t}),this.currentMoveIndex++,this.isBlackTurn=!this.isBlackTurn,this.render()}reset(){this.history=[],this.currentMoveIndex=-1,this.currentBoard=this.initialBoard,this.isBlackTurn=!0,this.render()}render(){const t=this.element,{rowCount:e,columnCount:n}=this.parsedBoard,i=wi(this.currentBoard,e,n),o=`turn-info-${Math.random().toString(36).substr(2,9)}`,a=`undo-${Math.random().toString(36).substr(2,9)}`,s=`redo-${Math.random().toString(36).substr(2,9)}`,u=`pass-${Math.random().toString(36).substr(2,9)}`,f=`reset-${Math.random().toString(36).substr(2,9)}`;let c='<div class="freeplay-container">';c+=`<div id="${o}" style="margin-bottom: 1rem; padding: 0.5rem; font-weight: 600; font-size: 1.1rem;">${this.isBlackTurn?"Black":"White"} to play</div>`,c+=i;const h="padding: 0.5rem 1rem; margin: 0.5rem 0.25rem; border: 1px solid #ccc; border-radius: 4px; background: #fff; cursor: pointer; font-size: 0.9rem;",p="padding: 0.5rem 1rem; margin: 0.5rem 0.25rem; border: 1px solid #ccc; border-radius: 4px; background: #f0f0f0; cursor: not-allowed; font-size: 0.9rem; color: #999;";c+='<div style="margin-top: 1rem;">',c+=`<button id="${a}" style="${this.currentMoveIndex>=0?h:p}" ${this.currentMoveIndex<0?"disabled":""}>← Undo</button>`,c+=`<button id="${s}" style="${this.currentMoveIndex<this.history.length-1?h:p}" ${this.currentMoveIndex>=this.history.length-1?"disabled":""}>Redo →</button>`,c+=`<button id="${u}" style="${h}">Pass</button>`,c+=`<button id="${f}" style="${h}">Reset</button>`,c+="</div>",c+="</div>",t.innerHTML=c;const _=t.querySelector("svg"),d=document.getElementById(a),v=document.getElementById(s),w=document.getElementById(u),I=document.getElementById(f);_&&(_.style.cursor="pointer",_.addEventListener("click",y=>{const l=y,g=_.getBoundingClientRect(),A=l.clientX-g.left,b=l.clientY-g.top,q=30,M=q,k=Math.round((A-M)/q),Q=Math.round((b-M)/q);if(Q>=0&&Q<e&&k>=0&&k<n){const Et=Ot(Q,k),Bt=this.isBlackTurn?K:at,st=kt(Et,Bt);Cs(this.currentBoard,st)&&(this.history=this.history.slice(0,this.currentMoveIndex+1),this.history.push({type:"move",move:st}),this.currentMoveIndex++,this.rebuildBoard(),this.render())}})),d&&d.addEventListener("click",()=>this.undo()),v&&v.addEventListener("click",()=>this.redo()),w&&w.addEventListener("click",()=>this.pass()),I&&I.addEventListener("click",()=>this.reset())}}const Qf={static:As,freeplay:ks,problem:$s},tc="0.0.0",rc=".godash-diagram";function ec(r,t){const e=t.split(`
4
+ `);if(e.length===0){r.innerHTML=Ur("Empty diagram source");return}const n=e[0].trim();try{let i;switch(n){case"static":i=new As(r,e);break;case"freeplay":i=new ks(r,e);break;case"problem":i=new $s(r,e);break;default:r.innerHTML=Ur(`Unsupported diagram type "${n}". Supported types: ${Object.keys(Qf).join(", ")}`);return}i.render()}catch(i){i instanceof dt?r.innerHTML=Ur(i.message):r.innerHTML=Ur(i instanceof Error?i.message:String(i))}}function nc(r,t){const e=r??rc,n=document.querySelectorAll(e);if(n.length===0)throw new Error(`No elements found for selector: ${e}`);n.forEach(i=>{const o=t?.diagramSource??i.textContent??"";ec(i,o)})}Tt.init=nc,Tt.version=tc,Object.defineProperty(Tt,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "godash-diagrams",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "A diagramming library for Go, inspired by Mermaid, and built on Godash",
5
5
  "author": {
6
6
  "name": "duckpunch",